汇编语言学习笔记04——mov和add指令

我们之前说学习汇编不能光看书学理论知识,要结合着实验去做,所以网课也很贴心的给附上了实验的课程。这次先学mov和add指令。

首先要说明的是,汇编指令是不区分大小写的。
在这里插入图片描述

这张图可以很好的解释mov和add指令的作用,需要注意的地方一个是最后一行,其结果存入ax寄存器中。还有就是这里不是debug环境,所以数值默认是10进制的。如果想要表达其他进制,需要在后面加上对应的字母。

接下来我们用类似书上例题的形式来分析一些指令,去更快的理解它们。

一、写出汇编指令后的结果
1、mov ax,4E20H
这里是把十六进制的4E20H这个数放到了ax寄存器中,执行指令后的ax中的数据变为4E20H(假设原ax,bx中的数据均为0000H)。

2、add ax,1406H
我们这里的命令是紧接着上一个的,所以在执行这条指令之前,ax寄存器的数值已经是4E20H了。这里相当于ax = ax+1406H,所以执行完毕后ax变为了1406+4E26为6226H。

注:十六进制的加减法其实跟10进制差不多,也是满了就进,不够就借。

考试如果是上机的话,可以直接调用Windows给自带的计算器的,比如win10,在左下角直接搜计算器后,这里有很多选项,选择程序员模式,即可使用16进制直接加减。在这里插入图片描述

3、mov bx,2000H
执行完后ax为6226,bx为2000

4、add ax,bx
执行完后ax为8226,bx为2000

5、mov bx,ax
这里需要注意的是,就像我们上面那张图说的,它类似于高级语言中的赋值语句,所以对原来的是不变的。因此bx是变成了ax存的8226,而ax依然还是6226

6、add ax,bx
这里如果算的话,ax应该是8226+8226=1044C,但是1044C是溢出的,超过了16位的寄存器所能承载的最大的数值,所以现在ax会变成044C,这个是需要注意的地方。

二、写出汇编指令后的结果

这里我们从新开始执行一些指令,ax和bx都先归零

1、mov ax,001AH
2、mov bx,0026H
这两个很简单,现在ax中是001A,bx中是0026

3、add al,bl
注意这里的寄存器变成了al和bl,即ax和bx的低位。
所以这里应该是1A+26=40。ax现在是0040H,bx是0026H

4、add ah,bl
这里是加到了ah上,ax变为了2640。

5、add bh,al
ax为2640,bx为4026

6、mov ah,0
这里呢把ah变为了0,所以ax变为了0040

7、mov al,85H
这里注意又把al变成了85h

8、add al,93H
这个是最需要注意的地方,93H加85H后是118,由于我们的命令中写的是al而不是ax,所以这里我们已经变成了计算8位的相加了,并不能进位到ah中去,所以只能舍弃成18H,ax现在是0018H。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值