本文作者:叶叶

汇编语言寄存器(汇编语言寄存器和存储器的区别)

叶叶 2024-10-23 05:36:22 20
汇编语言寄存器(汇编语言寄存器和存储器的区别)摘要: 本篇目录:1、汇编语言中什么是基址变址寄存器?2、汇编语言寄存器都叫什么?...

本篇目录:

汇编语言中什么是基址变址寄存器?

基址寄存器:寄存器bx称为基地址寄存器(base register),它可作为存储器指针来使用。 变址寄存器:32位cpu有2个32位通用寄存器esi和edi。其低16位对应先前cpu中的si和di,对低16位数据的存取,不影响高16位的数据。

基址是存放在基址寄存器中的内容,为有效地址中基址部分。基址只能是BX和BP,其默认匹配的段寄存器分别是DS和SS。变址是存放在变址寄存器中的内容,它通常用来访问数组中的某个元素或字符串中的字符。

汇编语言寄存器(汇编语言寄存器和存储器的区别)

SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。

基址寄存器(BX),由BH,BL组成,常用来存放访问内存时的基地址或用做间接寻址时的地址寄存器。还有基址指针寄存器(BP)。变址寄存器分为源变址寄存器(SI)和目的变址寄存器(DI),他们常常用在变址寻址方式中。

注意基变址寻址方式一般用于字符串或数组的处理,就是为了方便。

“基”即起点。“变”即相对起点的偏移值。变址寻址和基址寻址都属于偏移寻址。前者,偏移量在专用寄存器中起点地址在指令中。后者,起点地址在专用寄存器中偏移量在指令中。

汇编语言寄存器(汇编语言寄存器和存储器的区别)

汇编语言寄存器都叫什么?

1、寄存器按照功能的不同分别叫做通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI。

2、位的数据,这些低16位寄存器分别命名为AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。 4个16位寄存器又可分割成8个独立的8位寄存器(AX:ah~al、BX:bh~bl、CX:ch~cl:DX:dh~dl)。 每个寄存器都有自己的名称,可独立存取。

3、si、di分别是源、目的变址寄存器,bx是数据基址寄存器,bp是栈基址寄存器,SS、DS是段地址寄存器。物理地址=段地址×16+偏移地址,指令中出现BP作地址,则其段地址为SS,否则就为DS。

汇编语言bp寄存器和es寄存器有何用?

bp是基址寻址寄存器,默认的段是堆栈段。在不是默认段的情况下,称为:段超越。段超越情况下的寻址,必须要加上段超越前缀。es:bp就是段超越的应用事例之一。

汇编语言寄存器(汇编语言寄存器和存储器的区别)

附加段寄存器ES:存放当前执行程序中一个辅助数据段的段地址。段寄存器 CS IPSS SP或BPDS BX、DI、SIES DI(用于串指令)汇编大多是指汇编语言,汇编程序。把汇编语言翻译成机器语言的过程称为汇编。

附加段寄存器ES:存放当前执行程序中一个辅助数据段的段地址。

BP寄存器默认选用SS段,MOV AX,[BP]就是把BP作为偏移地址,SS作为段所寻到的内存设为AX。如果不用[BP]而用[SP],就是把SP作为偏移。使用BP的理由是SP会随着push.pop而改变,而BP却不变,可用于访问函数参数。

到此,以上就是小编对于汇编语言寄存器和存储器的区别的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享