x86汇编语言学习(一)基础知识

本文介绍了x86汇编语言的基础知识,包括总线的类型和作用,8086CPU的14个寄存器及其功能,如通用寄存器、段寄存器和标志寄存器。此外,还讲解了汇编指令的基本概念,如mov、add、sub指令,以及伪指令如segment ends、end和assume。最后,提到了寻址方式和寻址模式在汇编语言中的应用。
摘要由CSDN通过智能技术生成


学习参考资料:《汇编语言》(第三版)清华大学出版社 王爽著

总线

地址总线的宽度决定CPU的寻址能力。一个CPU有N根地址总线,最多可以寻找2N内存单元(B)。
例如:地址总线宽度分别为16根、20根、24根、32根的CPU,寻址能力分别为:64KB,1MB,16MB,4GB.

数据总线的宽度决定CPU与其他器件进行数据传送时的一次数据传送量。一个CPU有N根数据总线,一次可传送一个N位二进制数据。
例如:数据总线宽度分别为8根、16根、32根的CPU,一次可以传送的数据分别为:1B,2B,4B.

控制总线的宽度决定CPU对系统中其他器件的控制能力。有多少根控制总线,意味着CPU提供了多少种对外部器件的控制。

寄存器

8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。都是16位的。

通用寄存器

AX、BX、CX、DX
常用来存放一般性的数据。每个都能存储一个16位的数据,也可以分成两个独立的8位寄存器使用,如AX可以分成AH和AL。高8位构成AH,低8位构成AL。

寄存器 寄存器中的数据 表示的值
AX 0100111000100000 20000(0x4E20)
AH 01001110 78(0x4E)
AL 00100000 32(0x20)

在8086CPU中,只有BX、SI、DI、BP这四个寄存器可以用在“[…]”中来进行内存单元的寻址。这四个寄存器可以单独出现,或只能以四种组合出现:BX和SI,BX和DI,BP和SI,BP和DI。而只要在“[…]”中使用BP且没有显性给出段地址,段地址默认在SS中。

段寄存器

CS、DS、SS、ES

8086CPU访问物理内存时,地址加法器采用物理地址=段地址*16+偏移地址的方法用段地址和偏移地址合成物理地址。
本质上的寻址模式是物理地址=基础地址+偏移地址
CS是代码段寄存器,IP是指令指针寄存器。8086CPU从内存CS*16+IP单元开始读取指令并执行,即CPU将CS:IP指向的内容当作指令执行。读取一条指令后,IP中的值会自动增加所读取指令的长度,从而指向下一条指令。
修改CS和IP寄存器可以使用jmp指令,形如“jmp CS:IP”。

DS通常存放要访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值