鱼C论坛

 找回密码
 立即注册
查看: 2591|回复: 7

汇编题目求解

[复制链接]
发表于 2013-6-18 08:52:52 | 显示全部楼层 |阅读模式
1鱼币
请问这类题目该怎么解答,希望有大神可以给个思路
下面是某程序的汇编列表文件,请将程序执行过程中堆栈最满时每个单元的内容填入下表。假设程序执行时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

                  偏移地址   栈内容   
(     )
(     )
(     )
(     )
(     )
(     )
(     )
     SP

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-21 21:06:14 | 显示全部楼层
看不懂汇编飘过~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-16 17:59:21 | 显示全部楼层
不是很明白题目问什么,但应该是填sp随着栈变化的偏移地址吧,以及相应栈的变化内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-18 23:07:54 | 显示全部楼层
写的是什么东东, 天书呀,
  让别人怎么看吗,,  
      把格式做好一点吗,,
我看你不是结绝问题而是和大家开玩笑吗,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-21 09:59:39 | 显示全部楼层
如果楼主需要的是解题的思路,楼主看看我的回答可不可以(单如果要读懂理清这个程序还比较的困难)~~~~就答题而言,楼主可先看他要填的东西~~~要填写的是一个“栈”对吧,他要填写的就是栈里边的内容。好我们由此可以,推断就是跟着push来走。他第一个push推入栈的肯定是在栈底。那我们就要计算出它每一个push进栈里边的值,按照最新进去的在栈底这样子来写~~~~在这里特别要小心的就是要看清楚它里边有没有改变栈顶指针SP的指令,或者者每一个会改变栈里边值的指令。我的解题思路就是这样子的。希望对楼主有所帮助~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 13:10:45 | 显示全部楼层
不是很明白题目问什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 14:19:58 | 显示全部楼层
有点凌乱的排版:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 17:37:25 | 显示全部楼层
看不懂汇编路过~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 04:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表