寄存器(内存访问)

debug的使用可以在上部分的CPU原理查询:

执行完程序之后查看对应的通用寄存器的值,观察是不是如程序所示的那样对应寄存器的地址发生改变。

 说明:如果第三行的代码是:mov ax,[0]  那么传给ax的就是1123,如果代码是mov al,[0]  那么传给ax的就是23,在这里主要是区分字节和字的区别,ax传输的字,al传输的是字节   中括号里面是偏移地址,包括字节和字两种形式

问题3.3和3,4的操作步骤:

先使用指令 e 1000:0 23 11 22 11 将对应的数据放进去内存d

然后使用指令 r 查看ds:ip(段地址和偏移地址的位置,又叫做物理地址)的位置,本教程介绍的ds:ip是073f:100

使用指令 a 073f:100可以进入写入指令的模式,然后输入上面的指令,可以修改对应的通用寄存器值

最后使用 d 1000:0 4 可以查看该物理地址指向的内存里面的前五个值,可以发现对应的值的变化情况和之前没有使用指令之前的区别

提示:在第三行代码中的11316使用问题的,因为debug中指令中默认的数值应该是16进制的数据,而此处的11316是十进制的数值,所以应该先将113156转换成16进制的2c34,再输入即可

mov、add、sub指令的用法:

 

 

写几条指令,累加前三个数据段中的前三个字型数据:

 小结:

本人目前在学习python、前端、数据库和linux相关的内容,故打算写一些学习笔记,包括安装软件遇到的一些问题、编程语言的学习。 学习如逆水行舟,你在原地踏步的同时,别人一直在前进!
原文地址:https://www.cnblogs.com/souhaite/p/10849775.html