📄 7.txt
字号:
1、 答: CLRB MACRO N, ARRAY
CLD
MOV CX, N
MOV AL, 20H
LEA DI, ARRAY
REP STOSB
ENDM
2、答:
WAGES MACRO RATE,HOUR
MOV AL,RATE
MOV BL,HOUR
MUL BL ;计算周工资
;
ADD AX,AX
ADD AX,AX ;一个月有4周
MOV WAG,AX ;暂存中间结果
ADD BL,BL
ADD BL,BL ;计算月出工小时数
MOV AL,BL
MOV AH,0
MOV BL,10
DIV BL
MOV BL,3
MUL BL ;计算奖金
ADD WAG,AX ;计算工资总数
ENDM
宏展开:
1 MOV AL,R1
1 MOV BL,42
1 MUL BL
1 ADD AX,AX
1 ADD AX,AX
1 MOV WAG,AX
1 ADD BL,BL
1 ADD BL,BL
1 MOV AL,BL
1 MOV AH,0
1 MOV BL,10
1 DIV BL
1 MOV BL,3
1 MUL BL
1 ADD WAG,AX
3、答:
(1) 调用有效 1 PUSH AX
2 MOV AX, P1
2 SUB AX, P2
1 CMP AX, 0
1 JGE ??0000
1 NEG AX
1 ??0000: MOV DISTANCE, AX
1 POP AX
(2) 调用有效 1 PUSH AX
2 MOV AX, [BX]
2 SUB AX, [SI]
1 CMP AX, 0
1 JGE ??0001
1 NEG AX
1 ??0001: MOV X[DI], AX
1 POP AX
(3) 调用无效,有错误指令
1 ??0002: MOV 240H, AX
(4) 调用有效,但无意义
宏展开略。
4、答:
SEND MACRO SCHARS, DCHARS
LOCAL NEXT, EXIT
PUSH AX
PUSH SI
MOV SI, 0
NEXT: MOV AL, SCHARS[SI]
MOV DCHARS[SI], AL
CMP AL, 24H
JZ EXIT
INC SI
JMP NEXT
EXIT: POP SI
POP AX
ENDM
5、答:
BIN_SUB MACRO OPERAND,COUNT,RESULT
LOCAL NEXT
LEA BX,OPERAND
MOV CX,COUNT
DEC CX
MOV AL,[BX]
NEXT: INC BX
SUB AL,[BX]
LOOP NEXT
MOV RESULT,AL
ENDM
7、答:
宏展开:
2 DATA0 DW ?
2 DATA1 DW ?
9、答:
1 MOV TAB , 0
1 MOV TAB+1, 1
1 MOV TAB+2, 2
1 MOV TAB+3, 3
1 MOV TAB+4, 4
1 MOV TAB+5, 5
1 MOV TAB+6, 6
10、答:
STORE MACRO X
IRPC X, 0123456
MOV TAB+&X, X
ENDM
ENDM
12、答:
FINSUM MACRO X,Y,SUM
MOV AX, X
MOV BX, Y
.IF AX > BX
ADD BX, BX
ADD AX, BX
MOV SUM, AX
.ELSE
ADD AX, AX
ADD AX, BX
MOV SUM, AX
.ENDIF
ENDM
14、答:
DOS21 MACRO DOSFUNC,BUFF
IFNB áBUFF?
MOV AH,DOSFUNC
MOV DX,OFFSET BUFF
INT 21H
ELSE
MOV AH,DOSFUNC
INT 21H
ENDIF
ENDM
展开宏调用:
1 MOV AH,01
1 INT 21H
1 MOV AH,0AH
1 MOV DX,OFFSET IPFIELD
1 INT 21H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -