第八章 数据处理的两个基本问题
处理的数据在什么地方
要处理的数据有多长
8.1 bx,si,di,bp
只有这四个寄存器可以用来进行寄存器间接寻址 :[寄存器],其中,bp随机访问,没有规则
四个寄存器可以单个出现,亦可以以以下组合出现:bx与si、di,bp与si、di
bp默认段地址在ss中
指令要处理的数据有多长
1、由寄存器名指明
2、由x ptr
给出
mov word ptr ds:[0],1
move byte ptr ds:[0],1
3、由指令给出
push
只进行字操作
寻址方式的综合应用
assume cs:code,ds:seg
seg segment
db 'DEC'
db 'Ken Oslen'
dw 137
dw 40
db 'PDP'
seg ends
code segment
start: mov ax,seg
mov ds,ax
mov bx,00h
mov word ptr [bx].0ch,38
add word ptr [bx].0eh,70
mov si,0
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'
mov ax,4c00h
int 21h
code ends
end start
除法指令div
除数:8位或16位,存储在一个reg或内存单元中
被除数:默认存放在ax或ax+dx中。如果除数为8为,被除数为16位,默认存放在ax中,如果除数为16位,被除数位32位,dx存放高16位,ax存放低16位。
结果:如果除数为8位,al存商,ah存余数,若除数为16位,ax存商,dx存余数
伪指令dd
定义双字型数据,占两个字,四个字节
dup
用来进行数据的重复
db 3 dup ('abc','ABC')
定义了18个字节:abcABCabcABCabcABC