汇编小结(三)

汇编小结三

今天我们来通过一个实验来学习汇编语言中的a命令与t命令,通过这个实验我希望大家能够收获满满,这么课是一个很有趣的老师教的,所以想好好的总结这门课,当然,如果你用心阅读这篇文章,你会发现这也是一个有趣的实验哦,那么接下来就开始我们的旅程了吧。(就在刚刚又学会了一个小技巧,在markdown中设置目录:想分享给不会的小伙伴们,先引用@[toc]然后,结合#,这种一级,二级标题一起用。)

知识预备

a命令:a命令的作用是在debug下,可以在指定的地址下写汇编指令,如mov ax,bx此类的指令。

t命令:t命令的作用是执行cs:ip在此时此刻指向的指令。

实验内容

1.1:用Debug的A命令以汇编指令的格式在内存中写入一条机器指令(mov bx,5678)

-a (这里可以指定地址按回车再敲 mov bx,5678),具体图片如下图所示,

在这里插入图片描述

1.2可以查看写入的汇编指令对应的机器码吗?怎么做?

想要查看写入的汇编指令的机器码,其实只要用到u命令就好了,u命令的主要作用:可以查看机器码对应的汇编指令,并且可以看机器码的大小,每条机器码的大小都不一定是相同的,我们可以通过机器码来判断他的大小。(如图所示)
在这里插入图片描述
地址后面紧跟着的就是机器码,并且两个16进制位为一个字节。

1.3若写入了多条汇编指令(mov ax,31 mov bx,ax add ax,bx),其地址以13F0:0110开头,怎么写入这些指令?怎么执行这3条指令?每次执行后,ip的增加值相同吗,为什么?

这里我们要知道的一件事情是,t命令执行的指令,是cs:ip
所指向的指令,所以如果我们要执行我们想要的指令的话,我们就应该通过r命令来修改cs与ip。
而且每次执行完后ip的增加值不相同,因为,每条指令的大小不同。

2.小测试

下面我们来通过这个小测试,来避免我们在学习的时候我们可能会犯的一些错误。

(1)用e命令在内存中某一段写入自己生日(BCD码)

在这里插入图片描述
(2)编写指令将内存中自己生日(BCD码)放入通用寄存器ax和bx中。提示:读取内存要先设置哪个段寄存器。(073f:0110)

在这里插入图片描述

以上是我在做实验的一些操作,由于那个实验还有有点多的,我截取了测试里面的一下部分来解释一些易错点。

易错点

当我们用e命令在指定的位置敲入我们的生日的时候,我们要注意我们输入的地址是那一段,并且值得我们注意的是,这一段地址是在内存空间的,在进行第二步中, 我们要注意用a命令写的指令所在的地址不要与上一步重合了,如果重合了的话,那就会出错,这是我们最容易出错的地方,虽然很好理解,但是值得我们注意。

小结

不知道大家在读完这篇文章后是否有些许收获呢?我个人感觉虽然干货不会有很多,但是我们坚持学下去,不断的积累,总结,反思,日积月累是可以学到很多东西的,所以大家还是要多多学习,加油!有问题,大家可以在评论区发言哦!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值