Assembly x86寄存器名称、寻址模式、移位和存储
我有一些关于组装的问题,我正在学习,我很困惑Assembly x86寄存器名称、寻址模式、移位和存储,assembly,x86,masm,addressing-mode,Assembly,X86,Masm,Addressing Mode,我有一些关于组装的问题,我正在学习,我很困惑 bx和bp和ss和sp之间有什么区别?这本书说,bx是基址寄存器,bp是基址指针。这是否意味着它们是相同的东西 与mov-ax,bx,mov-ax,[bx],mov-ax,bp和mov-ax,[bp]有什么区别 在索引寻址模式下,disp是什么意思?例如mov al,disp[bx]?或mov al,disp[si]?本书没有解释disp的含义 寄存器在CPU中不是RAM对吗 请原谅我的英语,它不是我的第一语言 哦,天哪,这些16位寄存器在1
bx
和bp
和ss
和sp
之间有什么区别?这本书说,bx
是基址寄存器,bp
是基址指针。这是否意味着它们是相同的东西
mov-ax,bx
,mov-ax,[bx]
,mov-ax,bp
和mov-ax,[bp]
有什么区别
disp
是什么意思?例如mov al,disp[bx]
?或mov al,disp[si]
?本书没有解释disp
的含义
哦,天哪,这些16位寄存器在1984年几乎过时了。对不起,你有一本旧书。然而,现代处理器仍然使用这些东西,所以你的问题是有道理的。当时我写了一些16位汇编,奇怪的是我还记得。哎呀
MOV-AX,BX
将BX的内容移动到AX中,而MOV-AX,[BX]
将其值在DS:BX中的内存位置的内容移动到AX中。也就是说,如果BX包含值500,那么第一条指令将500移到AX中,而第二条指令将地址500的内容(从技术上讲,超过段DS的开头500字节)移到AX中。(请注意,在不同的汇编程序(如MASM和NASM)中解释此类MOV指令的方式存在一些细微的差异。)MOV AX的指令中,[BX+25]
则25是位移4:在x86体系结构中,寄存器确实在CPU中,而不是在RAM中。好的,我不知道有哪个1970年后的体系结构没有在CPU中显示寄存器,但我知道有一些体系结构(例如8051),其中寄存器与RAM位于同一地址空间,或者至少寄存器是一个子地址空间:访问RAM的指令可以同样轻松地访问寄存器,使用完全相同的指令代码,访问是从芯片外进入RAM还是留在芯片内进入寄存器,只取决于使用的地址。但在x86中,寄存器的活动值根本无法通过内存引用指令访问。(除非您先显式或隐式地将它们保存到内存中,但我们这里不讨论这一点。)请每个问题只问一个问题;一旦人们开始只回答你的一些问题,很难判断你的问题是否得到了回答。如果你有不止一件事要问,请随时同时提出多个问题;请把它们分开。非常感谢!有没有文章可以让我解释一下
bx
和bp
之间的区别?再次感谢大家再重复4次直到投票:可能有你需要的粒子:,