49703100.doc - 40 - 作者:User
MOV AX, 4321H CALL HTOA RET
MAIN ENDP ;主程序部分结束 ;-------------------------------------------------------------------- HTOA PROC NEAR ;HTOA子程序
CMP AX, 15 JLE B1 PUSH AX PUSH BP MOV BP, SP
MOV BX, [BP+2] AND BX, 000FH MOV [BP+2], BX POP BP MOV CL, 4 SHR AX, CL CALL HTOA POP BP
B1: ADD AL, 30H
CMP AL, 3AH JL PRINTIT ADD AL, 7H
PRINTIT: MOV DL, AL
MOV AH, 2 INT 21H RET
HOTA ENDP ;HOTA子程序结束 ;-------------------------------------------------------------------- CODE ENDS ;代码段结束 ;******************************************
END START ;程序结束
答:堆栈最满时各单元的地址及内容如右上图所示:
0500:00EC :00EE 返回POP BP地址 0003H :00F0 :00F2 返回POP BP地址 0002H :00F4 :00F6 返回POP BP地址 0001H :00F8 :00FA 主程序返回地址 0000 :00FC (DS) :00FE
00EE SP:
6.4 题堆栈最满时各单元
的地址及内容
6.5 下面是一个程序清单,请在下面的图中填入此程序执行过程中的堆栈变化。
;*************************
0000 STACKSG SEGMENT 0000 20 [. DW 32 DUP (?)
? ? ? ?
]
0040 STACKSG ENDS
;*************************
0000 CODESG SEGMENT PARA ?CODE‘
;--------------------------------------
0000 BEGIN PROC FAR
ASSUME CS: CODESG, SS: STACKSG
0000 1E PUSH DS 0001 2B C0 SUB AX, AX 0003 50 PUSH AX 0004 E8 0008 R CALL B10
;--------------------------------------
0007 CB RET 0008 BEGIN ENDP
;--------------------------------------
0008 B10 PROC 0008 E8 000C R CALL C10
;--------------------------------------
000B C3 RET
49703100.doc - 41 - 作者:User