博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编寻址方式
阅读量:5168 次
发布时间:2019-06-13

本文共 1418 字,大约阅读时间需要 4 分钟。

立即数寻址方式:MOV AX,0102H  

  源操作数是数
寄存器寻址方式 : MOV BX,AX  
  源操作数是寄存器。这些寄存器有:16位的AX BX CX DX SI DI SP BP
  8位的AH AL BH BL CH CL DH DL  
直接寻址方式 :MOV AX,[2000H]  
  源操作数是地址,与立即数寻址的区别就是,地址一般就是有【】   
寄存器间接寻址方式 :MOV AX,[SI]  
  源操作数中的寄存器是BX BP SI DI 中的任意一个  
寄存器相对寻址方式 :MOV AX,[DI+06H] ;AX←DS:[DI+06H]  
  源操作数是BX BP SI DI 中的任意一个与数字的和
基址变址寻址方式 :MOV AX,[BX+SI] ;AX←DS:[BX+SI]  
  源操作数是(BX BP)和( SI DI )这两组中的任意两个的和  
相对基址变址寻址方式 :MOV AX,[BX+SI+06H] ;AX←DS:[BX+SI+06H]  
  这种寻址方式就是上两种的组合

 

 

8086/8088有7种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接

寻址,寄存器相对寻址,基址加变址寻址方式,相对基址加变址寻址。
1   立即数寻址
     操作数就在指令中,作为指令的一部分,跟在操作码后存放在代码段。
     eg.   mov ah,01h
             mov ax,1204h 
     ;如果立即数是16位的,则高地址放在高位,低地址放在低位
                  
2   寄存器寻址
     操作数在寄存器中,指令中指定寄存器号。对于8位操作数,寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH。 对于16位操作数,寄存器可以是AX,BX,CX,DX,BP,SP,SI,DI等
     eg.   mov ah,ch
             mov bx,ax
                  
3   直接寻址方式
     操作数在存储器中,指令直接包含操作数的有效地址EA。
     eg.   mov ax,[1122h]   ;将ds:1122的数据放在ax,默认段为DS
             mov es:[1234],al ;采用了段前缀
                  
4   寄存器间接寻址
     操作数在存储器中,操作数的有效地址在SI,DI,BX,BP这4个寄存器之一中。在不采用段前缀的情况下, 对于DI,SI,BX默认段为DS,而BP为SS。
     eg.   mov ah,[bx]
             mov ah,cs:[bx] ;使用了段前缀
                  
5   寄存器相对寻址
     操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI,DI)的内容加上8位或16位的位移之和。在指令中的8位和16位的常量采用补码表示,8位要被带符号扩展为16位。
      eg.   mov ah,[bx+6];段址默认情况与寄存器间接寻址相同
                  
6   基址加变址寻址
              操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)加上变址寄存器(SI,DI)的
              内容。如果有BP,则默认段址为SS,否则为DS.
              eg.   mov ah,[bx+si]
              
7   相对基址加变址寻址
    操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)和变址寄存器(SI,DI)的内容加上8位或16位的位移之和。如果有BP,则默认段址为SS,否则为DS.
    eg.   mov ax,[bx+di-2]
            mov ax,1234h[bx][di]
                  
[注]:上面3~7为存储器寻址方式

 

转载于:https://www.cnblogs.com/jadeshu/p/10663543.html

你可能感兴趣的文章
Fedora23 安装 psycopg2
查看>>
毫秒转换为天、小时、分、秒
查看>>
获取listview当前滚动的高度
查看>>
LCS(HDU_5495 循环节)
查看>>
CPU性能瓶颈
查看>>
转----cer文件和pfx文件的区别
查看>>
hdu 3065 病毒侵袭持续中
查看>>
ruby rails
查看>>
GNU C中的零长度数组
查看>>
【C++】非原创|统计代码覆盖率(一:C)
查看>>
JSP 获取Request 经常使用參数
查看>>
第三次作业
查看>>
c#使用 Newtonsoft.Json 将entity转json时,忽略为null的属性
查看>>
phpcms调用语句
查看>>
thinkphp5--多文件入口设置
查看>>
“同样的”约束,不同的位置
查看>>
连接mysql数据库,创建用户模型
查看>>
关于正则表达式 \1 \2之类的问题
查看>>
DRL前沿之:Benchmarking Deep Reinforcement Learning for Continuous Control
查看>>
django uWSGI nginx搭建一个web服务器 确定可用
查看>>