3.汇编语言debug 段等
一:debug
1.R命令查看寄存器内容 R 寄存器名可以改变寄存器内容
2.D命令查看内存的内容
D回车:预设地址内存处的128个字节内容
D 段地址:偏移地址 列出内存中指定地址处的内容(根据上文我们知道段地址:偏移地址可以给出确切的物理位置)
D 段地址:偏移地址 结尾偏移地址 列出内存中指定地址范围内的内容(图中2000:0000 f f为16相当于范围为16)
3.E命令改变内存中的内容
方式一:E 段地址:偏移地址 数据1 数据2
方式二:E 段地址:偏移地址 逐个更改
4.U命令将内存中的机器指令翻译成汇编指令
5.E写入机器指令,D查看,U可以看到该机器指令和汇编指令
6.A命令以汇编指令的格式在内存中写入机器指令
073F:100 就是CS:IP(段地址:偏移地址)
我们可以看到用a命令输入汇编会翻译成机器指令
7.T命令执行CS:IP处的机器指令
R命令查看当下在073f:100下的指令 MOV AX,0123
T命令来看CS:IP的机器指令,不断T查看并可清纯看到每条指令执行后的结果
二:CS IP和代码段
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP=IP+所读取指令的长度,从而指向下一条指令;
(3)执行指令。转到步骤1,重复这个过程。
在debug中测试写入指令后看变化
三:jmp跳转指令
跳转指令如下图所示,相应debug测试输入指令后T看内存即可
四:字和字单元
五:用DS和address实现字的传送,DS与数据段
ds就是段寄存器,段地址放在段寄存器里, [address]表示一个偏移地址为address的内存单元
六:栈
push ax:将ax中的数据送入栈
pop ax:从栈顶取出数据送入ax