请问这类题目该怎么解答,希望有大神可以给个思路
下面是某程序的汇编列表文件,请将程序执行过程中堆栈最满时每个单元的内容填入下表。假设程序执行时PSP(Program Segment Prefix)段地址为1C3BH,stack段的段地址为1C4BH,code1段的段地址为1CABH,code2的段地址为1CADH。 地 址 机器码 汇编语言指令 0000 STACK SEGMENT STACK 0000 0030[0000] DW 30H DUP(0) 0060 TOP LABEL WORD 0060 STACK ENDS 0000 CODE1 SEGMENT ASSUME CS:CODE1,SS:STACK 0000 P1 PROC FAR 0000 B8 ---- R MOV AX,STACK 0003 8E D0 MOV SS,AX 0005 8D 26 0060 R LEA SP,TOP 0009 1E PUSH DS 000A 33 C0 XOR AX,AX 000C 50 PUSH AX 000D B8 0100 MOV AX,0100H 0010 9A 000C ---- R CALL FAR PTR P4 0015 2E: A3 001A R MOV CS:[ANS],AX 0019 CB RET 001A ???? ANS DW ? 001C P1 ENDP 001C P2 PROC FAR 001C 05 0030 ADD AX,30H 001F CB RET 0020 P2 ENDP 0020 CODE1 ENDS 0000 CODE2 SEGMENT ASSUME CS:CODE2 0000 P3 PROC NEAR 0000 05 0010 ADD AX,10H 0003 9A 001C ---- R CALL FAR PTR P2 0008 05 0020 ADD AX,20H 000B C3 RET 000C P3 ENDP 000C P4 PROC FAR 000C 05 0030 ADD AX,30H 000F E8 0000 R CALL NEAR PTR P3 0012 05 0040 ADD AX,40H 0015 CB RET 0016 P4 ENDP 0016 CODE2 ENDS END P1
偏移地址 栈内容
|