文档详情

微机系统与接口教学资料 第四章.ppt

发布:2017-03-08约2.65万字共126页下载文档
文本预览下载声明
注意! 上述表达式中运算符的求值的操作不是在程序执行的时候完成, 而是在对源程序进行汇编(编译)的时候完成. 3.5 宏指令及其应用 一.宏指令的定义 由标号、宏指令和注释构成。由编程者根据宏指令定义规则,将一组指令或伪指令集中定义为一条“宏大”的指令,即可以用一条已定义的宏指令代替多条语句。 宏指令定义格式: 宏指令名 MACRO [形式参数1, 形式参数2,…] 语句组 ;宏体 ENDM 其中:宏指令名由编程者任取; 形式参数在调用宏指令时用实在参数来替代,也可以不设参数。 例5:求10个双字节数之和S,S=X0+X1+…+X9,将和存入SUM单元,设和∣S∣≤32767。 DATA SEGMENT BLOCK DW 0028H,0139H,1005H,2133H,00A5H DW 3010H,123CH,2AC5H,3300H,1122H COUNT EQU ($-BLOCK)/2 SUM DW ? DATA ENDS STACK SEGMNET PARA STACK ‘STACK’ DW 50 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR START:PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX 例:将对某一寄存器的移位操作定义为一个宏指令。 (1)SHIFT MACRO MOV CL,4 SHL AX,CL ENDM 宏指令 SHIFT 将AX左移4 次。 (2)SHIFT MACRO CN MOV CL,CN SHL AX,CL ENDM 则 SHIFT 4 ;将AX左移4 次。 SHIFT 5 ;将AX左移5 次。 不设参数 设一个参数 (3)SHIFT MACRO CN,R MOV CL,CN SHL R,CL ENDM 则 SHIFT 4 ,AX ;将AX左移4 次。 SHIFT 2, BX ;将BX左移2 次。 (4)SHIFT MACRO CN,R,SD MOV CL,CN S SD R,CL ;用将参数标注出来,以便替换 ENDM 则 SHIFT 4 ,AX ,HL ;将AX左移4 次。 SHIFT 2,BX ,HR ;将BX右移2 次。 设二个参数 设三个参数 二.宏指令的使用 使用宏指令时需要将形式参数用一一对应的实在参数替代。当实在参数个数多于形式参数,忽略多余的形式参数。当实在参数个数少于形式参数,多余的形式参数设为空白。 宏指令中的参数可以为:常数、寄存器、存储单元名、地址表达式以及指令的助记符或助记符的一部分。 例: SHIFT MACRO R,CN MOV CL,CN SHL R,CL ENDM DATA SEGMENT X DB 08H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR PUSH DS MOV AX,0 PUSH AX MOV A
显示全部
相似文档