帮忙看一下这一段小代码
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 位的方法实现