汇编寄存器,寻址方式,lea指令解释

Posted Afololer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编寄存器,寻址方式,lea指令解释相关的知识,希望对你有一定的参考价值。

常用的寄存器

AX:主要用于算术运算,I/O指令都使用这一寄存器传递信息

BX: 基址寄存器

CX: 主要用于循环,移位指令的专用寄存器

DX: I/O的输出如果端口大于255,用DX表示,有时存放乘除的结果

SP、BP: 栈的变址寄存器,SP通常表示栈顶

DI、SI: 也是变址寄存器,DI一般与ES段联用,SI一般与DS段联用

PSW寄存器标志位

C、S、O、Z:对应进位、负数、溢出、零

DF:DF为0的时候串扫描是正向扫描

IF: IF为0时不接受同级或低级的中断

TF:TF为1时相当单步断点

寻址方式

  1. 立即数寻址

    mov ax,1234
    
  2. 寄存器寻址

    bx = 1234 mov ax,bx ax = 1234
    
    访问内存
  3. 直接

    mov ax,[10] ds = 1000 (10010)=1234 则 ax=1234
    
  4. 寄存器间接

    mov ax,[bx] ds = 1000 bx=10 (10010)=1234 则 ax=1234
    
  5. 相对寄存器

    array dw 1234
    mov ax array[1] ax = 2
    
  6. 基址变址

    mov ax,[bx][di]  ds = 1000 bx=5 si=5 (10010)=1234 则 ax=1234
    实际地址为 ds*16+bx+si
    
  7. 相对基址变址

array db 1,2,3,4
	  db 5,6,7,8
	N db 4
mov ax array[bx][di]
bx每次加N,si每次加1模拟访问二维数组

lea和mov的区别

若bx位于(11000)=1234,则lea取到的是11000,mov取到的是1234,假如

lea ax,bx
mov dx,[ax]

第一条指令获得了ax的地址,第二条访问这个地址中的数,所以

mov dx,bx等于上面操作

以上是关于汇编寄存器,寻址方式,lea指令解释的主要内容,如果未能解决你的问题,请参考以下文章

汇编学习笔记-80x86寻址方式

x86汇编如何查看一个地址的值

汇编第一节-寄存器与内存寻址

8088/8086的数据寻址方式

Linux驱动开发:ARM汇编基础

Linux汇编教程04:寻址方式