第高级汇編技术磁 例8-2定义满足使用不同寄存器实现移位要求的宏,可 入一个形式参量Y。 SHIFT MACRO X, Y MOV CL,Ⅹ SAL Y, CL ENDM 用形式参量Y来代替需要移位的寄存器。只要在调用时,把要移 位的寄存器作为实在参量代入,就可以对任一个寄存器实现指 定的左移次数。 SHIFT 4, AL SHIFT 4, BX ShiFT 6, DI
第8章 高级汇编技术 例8-2 定义满足使用不同寄存器实现移位要求的宏,可再引 入一个形式参量Y。 SHIFT MACRO X,Y MOV CL,X SAL Y,CL ENDM 用形式参量Y来代替需要移位的寄存器。只要在调用时,把要移 位的寄存器作为实在参量代入,就可以对任一个寄存器实现指 定的左移次数。 SHIFT 4,AL SHIFT 4,BX SHIFT 6,DI
第!幸高級汇編技术 在汇编这些宏指令时,分别产生以下指令语句,宏汇编 序在每一条由宏展开产生的指令前冠以加号“+”: +MOV CL, 4 +SAL AL, CL +MOV CL, 4 +SAL BX, CL +MOV cL, 6 +SAL DI, CL 第一条宏指令使AL左移4位;第二条宏指令使16位寄存器 BX左移4位;第三条宏指令使D左移6位
第8章 高级汇编技术 在汇编这些宏指令时,分别产生以下指令语句,宏汇编程 序在每一条由宏展开产生的指令前冠以加号“+”: +MOV CL,4 +SAL AL,CL +MOV CL,4 +SAL BX,CL +MOV CL,6 +SAL DI,CL 第一条宏指令使AL左移4位;第二条宏指令使16位寄存器 BX左移4位;第三条宏指令使DI左移6位
第幸高级汇編技术 (3)形式参量不仅可以出现在操作数部分,也可以出现在操 作码部分。 例8-3用宏指令定义操作码 SHIFT MACRO X,Y,Z MOⅤCL,Ⅹ S&z Y, Cl ENDM 其中第三个形式参量Z代替操作码中的一部分。若在宏定义 体中的形式参量没有适当的分隔符,则不被看作为形式参量, 调用时也不被实在参量所代替
第8章 高级汇编技术 (3) 形式参量不仅可以出现在操作数部分,也可以出现在操 作码部分。 例8-3 用宏指令定义操作码。 SHIFT MACRO X,Y,Z MOV CL,X S&Z Y,CL ENDM 其中第三个形式参量Z代替操作码中的一部分。若在宏定义 体中的形式参量没有适当的分隔符,则不被看作为形式参量, 调用时也不被实在参量所代替
第!幸高級汇編技术 例如,上例中的操作码部分S&Z中,若Z与S之间没有分隔, 则此处的Z就不被看作形式参量。要定义它为形式参量,必须在 其前面加上符号&。所以S&Z中Z就被看作是形式参量。若有以 下调用 shiFt 4, AL, AL ShiFT 6, BX, AR shiFt 8, SI, HR
第8章 高级汇编技术 例如,上例中的操作码部分S&Z中,若Z与S之间没有分隔, 则此处的Z就不被看作形式参量。要定义它为形式参量,必须在 其前面加上符号&。所以S&Z中Z就被看作是形式参量。若有以 下调用: SHIFT 4,AL,AL SHIFT 6,BX,AR SHIFT 8,SI,HR
第幸高级汇編技术 在汇编这些宏指令时,分别产生以下指令语句。 +MOV CL, 4 +SaL AL, CL +MOV CL, 6 +sar B, CL tov cl, 8 +Shr SI, CL 这里的SHFT宏指令可以对任一个寄存器进行任意的移位 操作(算术左移、算术右移、逻辑右移、可移任意指定的位数)
第8章 高级汇编技术 在汇编这些宏指令时,分别产生以下指令语句。 +MOV CL,4 +SAL AL,CL +MOV CL,6 +SAR BX,CL +MOV CL,8 +SHR SI,CL 这里的SHIFT宏指令可以对任一个寄存器进行任意的移位 操作(算术左移、算术右移、逻辑右移、可移任意指定的位数)