注册 登录
编程论坛 汇编论坛

求一程序,多谢指点

zm1573 发布于 2008-05-10 14:20, 952 次点击
编写一个程序,根据AL寄存器中哪一位为1,转到8个不同的分支中去,在每个分支中输出AL寄存器中为1的是哪一位。如AL寄存器中第4位为1(即AL寄存器中的内容为00010000),则在第4个分支中输出“4”。
      对这道题目,没有一点思路,请高手指点下!
2 回复
#2
zhulei19782008-05-10 18:55
data segment
 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
#3
czzcsf2008-05-14 20:57
加上宏指令会短一点吧!
1