请问如何在结果不变的情况下修改一下代码
data segment
io8255a equ 28ah
io8255b equ 28bh
io8255c equ 288h
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
buffer1 db 00,06
bz dw ?
mess db 'TPCA omterrupt!',0dh,0ah,'$'
portc1 db 24h,44h,04h,44h,04h,44h,04h
db 81h,82h,80h,82h,80h,82h,80h
db 0ffh
data ends
code segment
assume cs:code,ds:data
start:
mov ax,cs
mov ds,ax
mov dx,offset int3
mov ax,250bh
int 21h
in al,21h
and al,0f7h
out 21h,al
mov cx,15
sti
mov ax,data
mov ds,ax
mov dx,io8255b
mov al,80h
out dx,al
ll: mov dx,io8255a
re_on: mov bx,0
on: mov al,portc1[bx]
cmp al,0ffh
jz re_on
out dx,al
inc bx
mov cx,500 ;控制黄灯的停顿时间
test al,21h
jz de1
push ax
push bx
push cx
push dx
call shumaguang
pop dx
pop cx
pop bx
pop ax
jmp next
de1: mov di,9000
de0: dec di
jnz de0
loop de1
next:push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
jz on
exit:mov ah,4ch
int 21h
shumaguang proc
mov di,offset buffer1
loop1:mov cx,07bh
loop2:mov bh,02
lll: mov byte ptr bz,bh
push di
dec di
add di,bz
mov bl,[di]
pop di
mov bh,0
mov si,offset led
add si,bx
mov al,byte ptr [si]
mov dx,io8255c
out dx,al
mov al,byte ptr bz
mov dx,289h
out dx,al
push cx
mov cx,100
delay: loop delay
pop cx
mov al,00h
mov bh,byte ptr bz
shr bh,1
jnz lll
loop loop2
mov ax,word ptr [di]
cmp ah,00
jnz set
cmp al,00
jnz set
mov ax,0000h
mov [di],al
mov [di+1],ah
jmp loop1
set: mov ax,word ptr [di]
dec al
aas
mov [di],al
mov[di+1],ah
ret
shumaguang endp
jmp ll
int3:
mov ax,data
mov ds,ax
mov dx,offset mess
mov ah,09
int 21h
mov ax,0000
mov[di],al
mov [di+1],ah
mov al,20h
out 20h,al
loop llll
in al,21h
or al,08h
out 21h,al
sti
mov ah,4ch
int 21h
llll:iret
code ends
end start