约定
(ax) 表示寄存器AX里面的内容
-
ADR1X16+ADR2 :
((ds)*16+(bx)) - 字节型 8位 :
(al) (bl) (ch) - 字型 16位 :
(ds) (ax) (bx)
idata 表示常量
- 合法指令:
mov ax,[idata]mov bx,idata - 非法指令:
mov ds,idata
mov ax,[bx]
- 将一个内存单元的内容送入
ax - 这个内存单元的长度为
2字节(字单元),存放一个字 -
寄存器bx中存放的数据作为偏移地址EA,段地址SA默认在DS寄存器中 - 将
内存单元SA:EA处的数据送入寄存器ax中 - 即 :
(ax)=((ds)*16+(bx))
mov al,[bx]
- 将一个内存单元的内容送入
al - 这个内存单元的长度为
1字节(字节单元),存放一个字节
mov [bx],ax
-
寄存器bx中存放的数据作为偏移地址EA,段地址SA默认在DS寄存器中 - 将
寄存器ax中的数据送入内存单元SA:EA处 - 即 :
((ds)*16+(bx))=(ax)
inc bx
-
寄存器bx中的数据+1 - 等价
add bx,1 - 即
(bx)=(bx)+1
[BX]
-
BX表示的是偏移地址 -
偏移地址需要用16位表示, - [ ] 里面从来都是写BX,不能写BL或者BH
问题5.1

问题5.1 mov ax,[bx] 与 mov [bx],ax