汇编基础 笔记(《汇编语言》)

本文介绍了8086和8088 CPU的数据总线宽度及其对应内存地址空间,详细讲解了16位和8位寄存器的数据存储范围。此外,探讨了8086CPU的寻址方式,包括段地址和偏移地址的组合,以及CPU启动时的默认CS和IP值。还讨论了如何通过Debug工具查看和修改内存及寄存器,并举例说明了修改内存中特定地址数据的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8088cpu数据总线的宽度是8

8086cpu数据总线的宽度是16

 

cpu地址总线宽度-->内存地址空间的大小

8086:20-->2^20=1MB

80386:32-->4GB

----------------------------------

A 16-bit register can store data with the value up to 2^16-1=65535

A 8-bit register can store data with the value up to 2^8-1=255

----------------------------------

mov ax,0

mov al,0c5h

mov al,93h

result in ax?

 

mov ax,0c5h

mov ax,93h

result in ax?

----------------------------------

操作对象不一致:

mov bl,ax

mov ax,bh

都不对

----------------------------------

16位机/16位结构cpu的结构特性:

-运算器一次最多可以处理16位数据

-寄存器的最大宽度为16位

-寄存器和运算器之间的通路为16位

==>在8086内部,能够一次性处理、传输、暂时存储信息的最大长度为16位

 

一个段的起始地址一定是16的倍数

一个段的长度最大为64kb=2^16

----------------------------------

cpu寻址内存,需要向地址总线提供20位的物理地址,以寻址到一个唯一的内存单元

但cpu为16位,所以采用【段地址x16+偏移地址】的寻址方式

在cpu内部,需要段寄存器提供段地址

 

8086cpu加电启动或复位后(即cpu刚开始工作时)

cs和ip被设置为:cs=f000h,ip=fff0h

即在8086pc机刚启动时,cpu从内存ffff0h单元中读取指令执行

ffff0h单元中的指令是开机后执行的第一条指令

----------------------------------

cpu根据什么将内存中的信息看做指令?

cpu将cs:ip指向的内存单元中的内容看作指令。

----------------------------------

可以修改cs,ip中内容的指令:jmp

1.同时修改——jmp 段地址:偏移地址

2.仅修改ip——jmp 某一合法寄存器;用寄存器中的值修改ip

----------------------------------

Debug:

R: 查看、改变cpu寄存器的内容;

D: 查看内存中的内容;

E: 改写内存中的内容;

U:将内存中的机器指令翻译成汇编指令;

T: 执行一条机器指令;

A: 以汇编指令的格式在内存中写入一条机器指令。

 

进入dos后,使用alt+enter进入全屏——win7不支持。。。

------------------------------------

pc机主板上的rom中写有一个生产日期,在内存的fff00h-fffffh的某几个单元中,找到并试图修改:

1. debug

2. -d fff0:0 ff

3. -d fff0:00f0 00f5

4. -d fff0:00f5 0fc: 08/13/07

5. -e fff0:00f5

31 32 2f 31 15 2f 38 39

6. -d fff0:00f5 真的改了哎!重启debug没变!

重启cmd变了...

我还想重启电脑试试来着...

------------------------------------

向内存从b8100h开始的单元中填写数据,没变;

改变地址,有的变了有的没变;

------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值