计算机内存中数据是16进制表示的数据,马克42个人建议先转为二进制再转为十进制计算,结果再转回十六进制;最后可以用DEBUG命令进行验证;
这是DOSBox0.74版,可以直接下载;
先要进行挂起检验,成功后就会出现图片的结果;
d:\masm\
c:
dir
一、无符号数的加减算数运算
直接用十六进制运算(16进1)
1.加法运算
MOV AL,3bH
ADD AL,07H
[注]十六进制A:10,B:11,C:12,D:13,E:14,F:15
最后的结果原放到AL寄存器中(42H);
2.减法运算
MOV AL,fbH
MOV AL,07H
[注]减法的借位(借1就等价于16)
最后的结果原放到AL寄存器中(f4H);
二、无符号数的乘除算数运算
1.乘法运算
MOV AL,b4H
MOV BL,11H
MUL BL
AL = b4H = 180D //结尾字母D是十进制;BL = 11H = 17D
AX = 3060D = 0bf4H (of = cf = 1//有进位);
[注]乘法计算的结果默认存放在AX中(以字节为单位的计算);
2.除法运算
MOV AX,0400H
MOV BL,b4H
idiv bl
AX = 0400H = 1024D BL = b4H =180D 商 = 05D = 05H 余数 = 124D = 7CH
[注]商存入AL,余数存入AH中(字节运算默认)
二、无符号数的算数运算
1.混合运算
1. 89H - 23H + 0A3H * 12H /34H
MOV AL,A3H
MOV BL,12H
mul BL
MOV BL,34H
div BL
MOV CL,89H
sub CL,23H
ADD AX,CX
[注]运算次序乘除减加
二、有符号数的算数运算
1.混合运算
1. 67H + 23H * 56H / 0101H
MOV AL,23H
MOV BL,56H
imul BL
MOV BX,0101H
idiv BX
MOV CL,67H
cbw
ADD AX,CX
大佬们!
有什么好的想法讨论区等你,