数据处理的两个基本问题
- 处理的数据放在什么地方 ->cpu内部、内存、接口
- 要处理的数据有多长
定义描述性符号:reg(寄存器)、sreg(段寄存器)
reg:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di;
sreg:ds、ss、cs、es
一些寄存器的使用规则
在[…]中使用寄存器bp而指令中没有给出显性的短地址则默认为ss中
mov ax,[bp] ->(ax) = ((ss)*16+(bp))
mov ax,[bp+idata] ->(ax) = ((ss)*16+(bp)+idata)
mov ax,[bp+si] ->(ax) = ((ss)*16+(si))
mov ax,[bp+si+idata] ->(ax) = ((ss)*16+(si)+idata)
(idata表示立即数)
指令处理数据有多长
- 通过寄存器名称指明
- 用X ptr 指明(byte表示字节型数据、word表示字型数据)
- 其他方法
- push指令只能进行字操作