永发信息网

有关汇编语言的,可以帮我讲解一下下面的程序每个语句的作用吗?

答案:2  悬赏:50  手机版
解决时间 2021-12-18 22:59
  • 提问者网友:咪咪
  • 2021-12-18 19:45
BEGIN: MOV AH , 1
INT 21H
CMP AL , 'a'
JB STOP
CMP AL , 'z'
JA STOP
SUB AL , 20
MOV DL , AL
MOV AH , 2
INT 21H
JMP BEGIN
STOP: RET
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-12-18 19:57
这段程序是从键盘输入字符,然后判断条件,符合条件的进行一个操作,然后显示在屏幕上。每句解释如下:
BEGIN: MOV AH , 1
INT 21H 以上两句,1号中断,从键盘输入字符
CMP AL , 'a'
JB STOP 以上两句判断输入字符是否大于a,大于继续执行,小于就停止
CMP AL , 'z'
JA STOP 以上两句判断输入字符是否小于z,小于继续执行,大于就停止
SUB AL , 20 把符合条件的字符转换成相应的大写字母
MOV DL , AL 送到寄存器DL中
MOV AH , 2
INT 21H 以上两句是2号中断,在屏幕上显示符合条件的字符
JMP BEGIN
STOP: RET
全部回答
  • 1楼网友:独钓一江月
  • 2021-12-18 21:21
汇编语言中bt是位操作指令: 指令的格式:bt/btc/btr/bts reg/mem,reg/imm ;80386+ 受影响的标志位:cf 位检测指令是把第一个操作数中某一位的值传送给标志位cf,具体的哪一位由指令的第二操作数来确定。 根据指令中对具体位的处理不同,又分一下几种指令: bt:把指定的位传送给cf; btc:把指定的位传送给cf后,还使该位变反; btr:把指定的位传送给cf后,还使该位变为0; bts:把指定的位传送给cf后,还使该位变为1; 例如:假设(ax)=1234h,分别执行下面指令。 bt ax, 2 ;指令执行后,cf=1,(ax)=1234h btc ax, 6 ;指令执行后,cf=0,(ax)=1274h btr ax, 10 ;指令执行后,cf=0,(ax)=1234h bts ax, 14 ;指令执行后,cf=0,(ax)=5234h
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯