小白,请教汇编:从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数。
DATAS SEGMENT ;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov bx,0
mov ch,4
mov cl,4
S: mov ah,01h ;键盘输入,带回显
int 21h
cmp al,39h
jbe next ;<=
sub al,07h ;>
next:sub al,30h
shl bx,cl ;逻辑左移
add bl,al
dec ch
jnz s ;不等于
mov cx,16
s1:mov dl,0
rol bx,1 ;循环左移
adc dl,30h
mov ah,02h ;显示一个字符
int 21h
loop s1
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
网上看到的一道题,不太理解其中指令的意思,请多指教