三、8086/8088的寻址方式
    计算机是 通过执行指令序列来解决问题的
    因为每种计算机都有一组指令集提供给用户用..
    这组指令就叫做计算机的 *指令集
    计算机中的指令集就是由 *操作码字段 和 *操作数字段 两部分组成
    指令操作码字段在机器里面的表示比较简单,
    只需要对每一种操作的指定确定的二进制代码就可以了
    。。。。。{比唐僧还啰嗦}
/*机器智能识别二进制代码,所以用汇编来制定二进制代码
    汇编语言就是符号语言,,用它来表示操作码, 和机器指令相对应*/
    
    ADD AX,[1234]//ADD 是操作码  ,,,后面两个是操作数
    引出:寻址方式
            表示指令中用于说明操作数所在地址的方法
        有七种:/****这些东西都是在DS数据段后面表示的  物理地址都要加上DS数据段~~****/
            1.立即寻址方式
                操作数包含在指令中,作为指令一部分,在代码段中
                还是 *高的高位 *低的低位
            2.寄存器寻址方式
                16:AX...
                8:AL AH...//通用寄存器
                例如     mov ax,bx
                    把bx中值给ax
            3.直接寻址方式
                操作数在寄存器里面,指令直接包含有操作数的有效地址
                偏移地址:
                    MOV AX,[8054]//省略DS  应该是mov ax,ds:[8054]
                    
        例子:    MOV AX,VALUE
                MOV AX,ES:[VALUE]//ES是附加段
                MOV AX,ES:VALUE//同上
            4.寄存器间接寻址
                操作数在,SI.DI.BX.BP里面
                    MOV AX,[SI];//变样子而已....DS:[SI]
            5.相对加寻址方式
                    mov ax,[si+1000H];//哈哈哈  各种加
            6.基址加变址寻址方式
                操作数在寄存器中,操作数的有效地址由:
                    EA=[BX]+[SI]/[BP][DI];
                
                MOV AX,[BX][DI]//会加上DS数据段
                如:[DS]=2100H     [BX]=0158H   [DI]=10A5H
                        则 [EA]=0158+10A5=11FD
                            物理地址=21000(DS)+11FD=221FDH
 
            7.相对基址加变址寻址方式    
                MOV AX,[BX+DI+1100H]//最后再加上8位或者16位偏移
                    BP->SS  要不然以DS
                    给定的如果是8位  那么补成16位
                    如果超过FFFFH,用64K模式
                    
                    
例如:    MOV AX,[BX+DI-2]    
    假设,(DS)=50000H,(BX)=1223H,(DI)=54H
          (51275)=54H    (51276)=76H
          //其中-2的补码形式0000 0000 0000 0010 反码 1111 1111 1111 1110  FFFE
    物理地址单元:
    物理地址=50000+1223+0054+FFFE    
            =51275H
    执行完后 AX=7654H
    、
    相对基址变址寻址方式多样,下面四种表示的等价。
        MOV AX,[BX+DI+1234H]        MOV AX,1234H[BX][DI]
        MOV AX,1234H[BX+DI]            MOV AX,1234H[DI][BX]//都是在数据段后面的数据
        
        
        
    

练习题:

  

posted on 2013-10-08 11:31  西瓜异族  阅读(406)  评论(0编辑  收藏  举报