您的位置:首页 > 其它

170316 汇编-Debug指令、寄存器和内存

2017-03-16 21:10 225 查看
1625-5 王子昂 总结《2017年3月16日》 【连续第166天总结】

A.
汇编第二章实验、第三章

B.
本次实验的命令有:

-r
查看、改变寄存器的内容

-r
-rip(直接输入为显示所有寄存器、当前cs:ip指向的地址、命令)(加上寄存器名称则为显示当前内容及修改内容)

-d
查看内存中的内容

用法:-d 1000:0
-d 1000:0 0(不加偏移地址结尾则全部显示64KB的段内容)

-e
改变内存中的内容

输入首地址,空格进入下一个内存,回车键结束

-u
将内存中的机器指令翻译为汇编指令

-u 段地址:偏移地址

-t
执行(当前指针所指向的地址的)一条机器指令

-a
以汇编指令的格式在内存中写入一条机器指令

-a 段地址:偏移地址

注:
0-9FFFF为主存储器地址空间,可以随便修改

     
A0000-BFFFF为显存地址空间,实验中对它的修改没有起效,并且第二次查找它的内容完全不同

C0000-FFFFF为各类ROM地址空间,debug无法修改它的内容(不会报错,但写入命令无法生效)

CPU中用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。

字单元:存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字形数据的低位字节。

8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址。比如读取10000H单元的内容,可以:

mov bx,1000H

mov ds,bx

mov al,[0]

其中,[0]表示传入al寄存器的内容的内存单元的偏移地址。段地址则为ds寄存器的内容。

直接把值赋给ds段存储器的命令是不允许的,因此需要bx存储器来中转;

mov指令有两个参数,允许接入寄存器、数据、内存单元和段寄存器的任意写入;

add和sub指令也是两个参数,允许接入寄存器、数据和内存单元,但不接受对段寄存器的写入

对于8086PC机,在编程时可以将一组内存单元定义为一个段。要求为:长度小于等于64KB、地址连续、起始地址为16的倍数的内存单元。段地址直接传给ds段寄存器后,即可通过mov ax,[0]等来修改偏移地址轻松地累加数据段中的内容

C.
明日计划

JAVA

汇编 检测点3.1及以后内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐