汇编语言(王爽)学习记录_第八章

第八章 数据处理的两个基本问题

定义描述性符号:reg集合表示:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di    sreg集合表示:ds,ss,cs,es

bx、si、di和bp

(1)8086CPU中只有这四个可用在“[   ]”:mov ax,[bx] 、 mov ax,[bx+di] 、mov ax,[bx+si] 、mov ax,[bp] 、mov ax,[bp+si] 、mov ax,[bx+di]

    错误用法:mov ax,[cx] 、 mov ax,[ax] 、mov ax,[dx] 、 mov ax,[ds]

(2)在“[  ]”中这四个可以单独出现也可以以这4中种组合:bx和si,bx和di,bp和si,bp和di

     例:  mov ax,[bx]

      mov ax,[di]

      mov ax,[si]

      mov ax,[bp]

      mov ax,[bx+si]

      mov ax,[bx+di]

      mov ax,[bp+si]

      mov ax,[bp+di]

      mov ax,[bx+si+idata]

      mov ax,[bx+di+idata]

      mov ax,[bp+si+idata]

      mov ax,[bp+di+bp]

(3)在”[  ] “中使用bp,而没有显性给出段地址则段地址默认在ss中

    例:   mov ax,[bp]

         mov ax,[bp+idata]

         mov ax,[bp+si]

         mov ax,[bp+si+idata]

汇编语言中数据位置的表达

(1)立即数(idata)  直接在机器指令中的数据(执行前在CPU的指令缓存中)称为立即数,例如:mov ax,1、add bx,2000h、or bx,00020000b、mov al,'a'

(2)寄存器  数据在寄存器中,例:mov ax,bx、mov ds,ax、push bx

(3)段地址(SA)和偏移地址(EA)  要处理的数据在内存中用[EA]格式给出EA,SA在某个段寄存器中。例:mov ax,[0](特殊可以这样写)、mov ax,[di]、mov ax,[bx+8](前三段寄存器都在ds中)、mov ax,[bp](段寄存器在ss中)、也可以显性给出:mov ax,ds:[bp]、mov ax,es:[bx]

寻址方式

 指令要处理的数据有多长

8086CPU种机器指令要指明数据处理的是字还是字节有以下3种方式:

(1)通过寄存器指明:mov ax,1、mov bx,ds:[0]、mov al,1、 mov al,bl前两者是对字型数据操作,后两者是对字节型数据操作。

(2)用操作符X ptr指明内存单元的长度X可以是word、byte例如:mov word ptr ds:[0],1、mov word ptr [bx]、add byte ptr [bx],2、inc byte ptr ds:[0]

(3)其他例如出入栈,push [1000H]不能指明访问单元类型,只能对字操作。

div指令

div指令做除法时要看除数的位数:

除数 8位 16位
被除数 默认AX中 DX(高16位)和AX(低16位)中
AL AX
余数 AH DX

格式:

div reg

div 内存单元

例:

div byte ptr ds:[0] 表示(al)=(ax)/((ds)*16+0)的商、(ah)=(ax)/((ds)*16+0)的余数

div word ptr es:[0] 表示(ax)=[(dx)*10000H+(ax)]/((es)*16+0)的商、(dx)=[(dx)*10000H+(ax)]/((es)*16+0)的商

编程:100001/100

mov dx,1

mov ax,86a1h

mov bx,100

div bx

 伪指令dd

与dw和db一样定义数据,dd定义的是32位数据。

data sagement

db 1

dw 1

dd 1

data ends

第一个数据01H,在data:0处占1个字节

第二个数据0001H,在data:1处占一个

第三个数据00000001H,在data,3处占两个

dup

与dd,dw,db一起使用,用于进行数据的重复。

例如:db 3 dup(0) 相当于db 0,0,0

   db 3 dup(0,1,2) 相当于db 0,1,2,0,1,2,0,1,2

 

 

原文地址:https://www.cnblogs.com/Te-mgl/p/14117833.html