当前位置:首页 > 汇编语言程序设计答案
ENDM
8.9 在数据段中定义了三个有符号数A、B、C,使用宏指令,给三个数排序,三个变量作为参数。
答:ORDER MACRO A,B,C CMP A,B JG L1 MOV AX,B MOV BX,A MOV A,AX MOV B,BX
L1:CMP B,C JG L2 MOV AX,B MOV BX,C MOV C,AX CMP A,BX JG L2 MOV AX,A MOV A,BX MOV B,AX
L2: ENDM
8.10 编写一个宏定义SCAN,完成在一个字符串中查找某个字符的工作。被查找的该字符,字符串首地址及其长度均为变元。 答: SCAN MACRO A,STREE,N MOV AX,SEG STREE MOV ES,AX LEA DI,STREE MOV CX,N MOV AL,A CLD
REPNE SCASB JZ YES
MOV DL,’N’ JMP DISP
YES:MOV DL,’Y’ DISP:MOV AH,2 INT 21H ENDM
8.11 编写宏指令COMPSS,比较2个同长度的字符串str1和str2是否相等, 2个字符串的首地址和长度为变元。写出完整程序,在数据段中写出数据定义,在
代码段中写出宏定义和宏调用。并处理若相等则显示‘MATCH’,否则显示‘NOT MATCH’. 答:
COMPSS MACRO ST1,ST2,N LEA SI,ST1 LEA DI,ST2 MOV CX,N
CLD
REPE CMPSB JZ YES
MOV DX,LEA S2 JMP DISP
YES:MOV DX,LEA S1 DISP:MOV AH,9 INT 21H ENDM
DATA SEGMENT STR1 DB ‘’ NUM DB ?
S1 DB ‘MATCH$’
S2 DB ‘NOT MATCH$’ DATA ENDS EXT SEGMENT STR2 DB ‘’ EXT ENDS
CODE SEGMENT MAIN PROC FAR PUSH DS PUSH ES MOV AX,0 PUSH AX
MOV AX,DATA MOV DS,AX MOV AX,EXT MOV ES,AX
MOV NUM, LENGTH STR1 COMPSS STR1,STR2, NUM RET CODE ENDS END MAIN
8.12 编写宏定义程序,可以对任意字数组求元素之和,数组名称、元素个数和结果存放单元为宏定义的哑元。 答:ADS MACRO ARRAY,N,SUM
共分享92篇相关文档