9.4.2 伪指令IRP

伪指令IRP的作用是用每个参数创建一组语句,其重复次数由伪指令后面参数表中参数的个数来确定。其一般使用格式如下:

IRP 形式参数, <实参1, 实参2, ……, 实参n>
重复的语句组
ENDM

例9.11 把16位通用寄存器之值相加,并把结果存入寄存器AX。

解:由于16位通用寄存器名是一些不同的符号,不能用计数的方法来依次访问它们,所以,我们需要用伪指令IRP来实现。

IRP REG, <BX, CX, DX, SP, BP, SI, DI>
ADD  AX, REG
ENDM

9.4.3 伪指令IRPC

伪指令IRPC的作用与IRP相似,其实参表是一个字符串,并对字符串中的每个字符创建一组语句,所以,其重复次数是由该字符串中的字符数来确定。其一般使用格式如下:

IRPC 形式参数, 字符串
重复的语句组
ENDM

例9.12 定义10个字节存储单元,保存数字0~9的平方数。

解:

IRPC X, 0123456789
DB  X*X
ENDM

例9.13 把16位数据寄存器之值相加,并把结果存入寄存器DI。

解:由于16位数据寄存器是AX、BX、CX和DX,它们的名称中只有第一个字符不同,所以,可以用伪指令IRPC来实现。

XOR DI, DI
IRPC REG, ABCD
ADD  DI, REG&X            ;符号&是连接运算符
ENDM