求一程序,多谢指点
编写一个程序,根据AL寄存器中哪一位为1,转到8个不同的分支中去,在每个分支中输出AL寄存器中为1的是哪一位。如AL寄存器中第4位为1(即AL寄存器中的内容为00010000),则在第4个分支中输出“4”。对这道题目,没有一点思路,请高手指点下!
source_buffer db ?
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ah,2
shr al,1
jb flag1
shr al,1
jb flag2
shr al,1
jb flag3
shr al,1
jb flag4
shr al,1
jb flag5
shr al,1
jb flag6
shr al,1
jb flag7
shr al,1
jb flag8
flag1:
mov dl,'0'
int 21h
jmp exit
flag2:
mov dl,'1'
int 21h
jmp exit
flag3:
mov dl,'2'
int 21h
jmp exit
flag4:
mov dl,'3'
int 21h
jmp exit
flag5:
mov dl,'4'
int 21h
jmp exit
flag6:
mov dl,'5'
int 21h
jmp exit
flag7:
mov dl,'6'
int 21h
jmp exit
flag8:
mov dl,'7'
int 21h
jmp exit
exit:
ret
main endp
code ends
end start 加上宏指令会短一点吧!
页:
[1]
