最后改进代码: .MODEL TINY .STACK 100 .DATA ledshow DB 11111110B ;数据段定义变量按“变量名 数据类型 数据”;DB为字节型 seven DB 07h zero DB 00h .CODE START: A equ 0270H ;数码管端口地址 B equ 0271H ;0-1开关端口地址 C equ 0272H ;控制数码管显示内容 mov ax,@DATA ;获得当前程序的数据段地址,并传送给数据段DS寄存器保存。 mov ds,ax ;这样,程序中访问存储器操作数时,默认情况下就会从DS指定的数据段进行存取 mov dx,273h mov al,10000010H out dx,al function: call delay mov dx,B in al,dx ;从dx端口地址中将数据读入到al中 and al,00001111B cmp al,00000001B je fun1 cmp al,00000010B je fun2 cmp al,00000100B je fun3 cmp al,00001000B je fun4 fun1: mov dx,A mov al,00H out dx,al ;将al中的值读出到dx端口地址中 jmp function fun2: mov dx,A mov al,0FFH out dx