<汇编语言(第2版)>2011033101

学习指令:
and指令:逻辑与指令,按位进行与运算
    AND r/m,r/m/data
or指令:逻辑或指令,按位进行与运算
    OR r/m,r/m/data

关于如何灵活访问地址,以下用mov指令看定位内存地址
1、mov ax,[bx+idata]或mov ax,idata[bx]
内存地址=(bx)+idata

2、
8086CPU的SI和DI,不能分为两个8位寄存器使用
mov ax,[bx+si]也可以写成mov ax,[bx][si]
内存地址=(bx)+(si)

3、mov ax,[bx+si+idata]或mov ax,idata[bx][si]或mov ax,[bx].idata[si]或mov ax,[bx][si].200
内存地址=(bx)+(si)+idata

我们这么来定义:
reg集合:
    ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di
sreg集合:
    ds,ss,cs,es

注意:
在8086CPU中只有bx、si、di、bp4类寄存器可以使用[...]来进行内存单位的寻址
像mov ax,[cs]之类是错误的。

在[...]中,这4个寄存器可以单独出现,或只能以4种组合出现:bx和si、bx和di、bp和si、bp和di。

只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,默认段地址为ss

汇编中对数据所在位置有3个概念:
1、立即数(idata),数据就在指令里面,es.mov ax,1
2、寄存器,数据在寄存器里面,es.mov ax,bx
3、段地址(SA)和偏移地址(EA)
SA和EA是一个未知的,类似方程式中的X、Y

寻址方式:
1、直接寻址    es.mov ax,1
2、寄存器间接寻址    es.mov ax,[bx]
3、寄存器相对寻址    es.mov ax,[bx+idata]
4、相对基址变址寻址    es.mov ax,[bx+si+idata]



8086CPU的指令,可以处理两种尺寸的数据,byte和word。
确定指令做的是字操作还是字节操作,如下可解:
1、通过寄存器名指明要处理的数据的尺寸
mov ax,1;字操作
mov al,1;字节操作
mov ds:[0],ax;字操作
mov ds:[0],al;字节操作

2、在没有寄存器名存在的情况下,使用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte.
mov word ptr ds:[0],1;字操作
mov byte ptr ds:[0],1;字节操作

3、其他地方
有些指令默认了访问为字单元还是字节单元
比如栈指令pop,push就是默认只进行字操作



学习指令:
div指令格式:
         div 8位寄存器/8位内存操作数
         div 16位寄存器/16位内存操作数
         div 32位寄存器/32位内存操作数


         被除数 、 除数、商、余数之间的关系:


        被除数                         除数                    商         余数
        ax                8位寄存器/8位内存操作数                al            ah
        dx:ax            16位寄存器/16位内存操作数            ax            dx       
        edx:eax            32位寄存器/32位内存操作数            eax            edx
1.
         举个例子:
         mov ax, 0060h
         mov bl, 2
         div bl   ;al = 30h , ah = 00h

         那么执行完后, 商是30h ,余数是00h


2.
         在举个例子
         执行(6005h/100h),由于我们的出示是16位,所以被除数是放在dx:ax中的。 但是由于被除数是6005h,所以我们必须将dx清0.
         xor dx, dx
         mov ax, 6005h
         mov bx, 100h
         div bx
       
         那么执行后, 我们的ax = 0060h, dx = 0005h。 所以我们的商是60h, 余数是5h。
         很简单。

8086/8088汇编语言指令集http://blog.pfan.cn/wukong/5101.html
posted @ 2011-03-31 15:49  西就东城  阅读(289)  评论(0编辑  收藏  举报