寄存器与内存-dubug详细的命令使用

发布于:2022-11-02 ⋅ 阅读:(412) ⋅ 点赞:(0)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一、内存的分段表示法

8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址。
内存并没有分段,段的划分来自于CPU!!!
在这里插入图片描述

1.同一段内存,多种分段方式

在这里插入图片描述
起始地址( 基础地址)为10000H,段地址为1000H,大小为100H

在这里插入图片描述
起始地址( 基础地址 )为10000H和10080H,段地址为1000H 和1008H,大小均为80H。
(1)段地址×16 必然是 16的倍数,所以一个段的起始地址也一定是16的倍数;
(2)偏移地址为16位,16 位地址的寻址能力为 64K,所以一个段的长度最大为64K。

2.用不同的段地址和偏移地址形成同一个物理地址

在这里插入图片描述
偏移地址16位,变化范围为0~FFFFH,用偏移地址最多寻址64KB。
例:给定段地址2000H,用偏移地址寻址的范围是:20000H~2FFFFFH,共64K

在8086CPU机中存储单元地址的表示方法:
例:数据在21F60H内存单元中,段地址是2000H,说法
(a)数据存在内存2000:1F60单元中;
(b)数据存在内存的2000H段中的1F60H单元中。

段地址很重要!——用专门的寄存器存放段地址。
4个段寄存器:CS - 代码段寄存器
DS - 数据段寄存器
SS - 栈段寄存器
ES - 附加段寄存器

偏移地址可以用多种方法提供——8086丰富的取址方式。
把这些取址方式用活了那么汇编语言就掌握了!!!

二、Debug的使用

Debug是DOS系统中的著名调试程序,也可以在windows系统实践模式下。
使用Debug程序,可以查看CPU各种寄存器中的内容、内存的情况,并且在机器指令级跟踪程序的运行!
Debug就是传奇!
在这里插入图片描述

Debug能做些什么?

用R命令查看、改变CPU寄存器的内容
用D命令查看内存中的内容
用E命令改变内存中的内容
用U命令将内存中的机器指令翻译成汇编指令
用A命令以汇编指令的格式在内存中写入机器指令
用T命令执行机器指令
如果对DOS系统中的Debug环境不知道怎么搭建的可以看一下小编之前写过的文章http://t.csdn.cn/Kukdr

用R命令查看、改变CPU寄存器的内容

R- 查看寄存器内容
R 寄存器名 - 改变指定寄存器内容
在这里插入图片描述

用D命令查看内存中的内容

D - 列出预设地址内存处的128个字节的内容
D 段地址:偏移地址 - 列出内存中指定地址处的内容
D 段地址:偏移地址 结尾偏移地址 - 列出内存中指定地址范围内的内容
在这里插入图片描述

用E命令改变内存中的内容

E 段地址:偏移地址 数据1 数据2 …
E 段地址:偏移地址
逐个询问式修改
空格 - 接受,继续
回车 - 结束
在这里插入图片描述
在这里插入图片描述

用U命令将内存中的机器指令翻译成汇编指令

有汇编指令
mov ax, 0123H
mov bx, 0003H
mov ax, bx
add ax, bx

对应的机器码为
B8 23 01
BB 03 00
89 D8
01 D8

e 地址 数据 - 写入
d 地址 - 查看
u 地址 - 查看代码
在这里插入图片描述

用A命令以汇编指令的格式在内存中写入机器指令

有汇编指令
mov ax, 0123H
mov bx, 0003H
mov ax, bx
add ax, bx

对应的机器码为
B8 23 01
BB 03 00
89 D8
01 D8

a 地址 - 写入汇编指令
d 地址 - 查看数据
u 地址 - 查看代码
在这里插入图片描述
在这里插入图片描述

用T命令执行机器指令

t - 执行CS:IP处的指令
mov ax, 0123H
mov bx, 0003H
mov ax, bx
add ax, bx
在这里插入图片描述

用Q命令退出Debug

q - 退出Debug

总结

想要学好汇编语言关键在于在dos环境下进行debug的练习,只有通过自己的实践才能够学好汇编语言。
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到