汇编程序的有符号数与无符号数的加减乘除(8086)

计算机内存中数据是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

     大佬们!

               有什么好的想法讨论区等你,

猜你喜欢

转载自blog.csdn.net/m0_52342215/article/details/124505818