数据处理的两个基本问题
(1)处理的数据在什么地方?
(2)处理的数据有多长?
描述性符号reg和sreg
reg表示一个寄存器,包括ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl.sp,bp,si,di。
sreg表示一个段寄存器,包括ds,ss,cs,es。
8.1 bx、si、di、bp
以下指令是正确的:
8.2 机器指令处理的数据所在位置
所处理的数据可以在三个位置:CPU内部、内存、端口(后面的课程进行讨论)
8.3 汇编语言中数据位置的表达
汇编语言用三种方式表达数据位置:
(1)立即数idata 例如:MOV AX,1 其中的1即为立即数
(2)寄存器 例如:MOV DS,AX
(3)段地址(SA)加上偏移地址(EA)
8.4 寻址方式
8.5 指令要处理的数据有多长
8086CPU的指令,可以处理两种尺寸的数据,byte和word。所以在机器指令中要指明,指令进行的是字操作还是字节操作。
8.6 寻址方式的综合运用
mov ax,seg
mov ds,ax
mov bx,60h ;确定记录地址,ds:bx
mov word ptr [bx+0ch],38 ;排名字段改为38
add word ptr [bx+0eh],70 ;收入字段增加70
mov si,0 ;用si来定位产品字符串中的字符
mov byte ptr [bx+10h+si],'V'
inc si
mov byte ptr [bx+10h+si],'A'
inc si
mov byte ptr [bx+10h+si],'X'
8.7 DIV指令
div指令为除法指令
编程:利用除法指令计算100001/100
;被除数100001。。转换为16进制为186A1H
;高16位为1,保存在dx中,低16位为86A1H,保存在ax中
mov dx,1
mov ax,86A1h
mov bx,100 ;除数100,保存在bx中
div bx
;程序执行后(ax)=03E8H(即商为1000),(dx)=1(即余数为1)
8.8 伪指令dd
用db定义字节型数据,dw定义字型数据,dd定义dword(双字)型数据。。
8.9 dup