首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

帮忙看一下这一段小代码,该如何处理

2012-03-14 
帮忙看一下这一段小代码X,Y平均数ZDatasegmentXDB54(需转换成十六进制)YDB78ZDB?DATA ENDSCODE SEGMNETASS

帮忙看一下这一段小代码
X,Y   平均数Z
Data   segment  
X   DB   54(需转换成十六进制)
Y   DB   78
Z   DB   ?
DATA ENDS
CODE SEGMNET
ASSZIME   CS:CODE     DS:DATA
MAIN:   MOV     AX     DATA
                MOV     DS     AX
                MOV   AL,X
                ADD   AL,Y;   X+Y→AL?
                MOV   BX   02H
                DIV   BL!AX/2
                MOV   2   AL
                MOV   AH   4CH
                INT   21
                CODE   ENDS
END   MAIN


如上是一个同学求平均的代码(也不知道对不对),本人刚接触,有几句话不懂
ADD   AL,Y;   X+Y→AL?   可不可以写   ADD   AL,Y    
MOV   BX   02H       这句啥意思
MOV   2   AL     是不是要改成   MOV   Z   AL     (因为把结果放在Z单元中)

还有 
MOV   AH   4CH   是保存结果
INT   21                       返回dos状态
这是书上说的,不知道对不对??



[解决办法]
> > MOV BX, 02H 它是什么意思???
就是将值 02H 赋予寄存器 BX. 从下面的指令来看, 只要赋予 BL 就可以了: MOV BL, 02H

> > DIV BL ; AX/2   如果按你的理解,AX/2是解释,那么直接 DIV BL它就表示除2???
DIV BL 指令的意思就是 AX/BL, 商在 AL, 余数返回在 AH. 由于前面有指令经 2 赋予了 BX, 所以 BL 就是 2 这样该指令就是除以 2 了. 其实, 除以 2 可以更简单地使用右移 1 位的方法实现

热点排行