汇编语言(六)

8 数据处理的两个基本问题

定义描述性符号:

  • reg表示一个寄存器

  • sreg表示一个段寄存器

8.1 bx、si、di、bp

  1. 8086cpu中,只有bx、si、di、bp四个寄存器可用在[...]进行内存单元的寻址
  2. [...]中,四个寄存器可以单个出现,或只能以四种组合出现:
    • bx si
    • bx di
    • bp si
    • bp di
  3. [...]使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中。

8.3 数据位置的表达

  1. 立即数(idata)

    mov ax,1

  2. 寄存器

    mov ax,bx

  3. 段地址(SA)和偏移地址(EA)

8.7 div指令

div是除法指令:

  1. 除数:有8位和16位两种,在一个reg或内存单元中。
  2. 被除数:默认放在AX或DX和AX中,如果除数为8位,被除数则为16位,默认在AX中存放;如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。
  3. 结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。

例子:

div btye ptr ds:[0]
含义:(al)=(ax)/((ds)*16+0)的商
	(ah)=(ax)/((ds)*16+0)的余数
	
div word ptr es:[0]
含义:(ax)=[(ds)*10000h+(ax)]/((es)*16+0)的商
	(dx)=[(ds)*10000h+(ax)]/((es)*16+0)的余数

实例:

利用除法指令计算100001/100
mov dx,1
mov ax,86a1h;10001大于65535不能用但寄存器存放,转换为十六进制后分开存储
mov bx,100;写入除数
div bx;执行除法

8.8伪指令

db和dw定义字节型数据和字型数据

dd定义双字型数据,如:

data segment
	db 1;占一个字节
	dw 1;占一个字
	dd 1;占两个字
data ends

8.9 dup

dup是一个操作符,用来数据重复.

dup使用格式:dw\db\dd 重复次数 dup(重复数据)。如:

dp 3 dup("adb");定义了9个字节,是"adbadbadb"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值