飞翔工作室 发表于 2013-9-1 00:35:32

汇编的一个作业

-a
0afb:0010 mov ax,1000
0afb:0010 mov ss,ax
0afb:0010 mov sp,2
0afb:0010 mov ax,2266
0afb:0010push ax
0afb:0010
-d 1000:2
1000:0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1000:0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
……
为什么不是
1000:0000 66 22 00 00 00 00 00 00 00 00 00 00 00 00 00


LinuxDeepin 发表于 2013-9-1 01:44:55

有没有 t 执行?

??? 发表于 2013-9-1 11:07:11

执行到mov ax,2266这步就出错了,求解!

小名明SIU 发表于 2013-9-1 11:32:45

本帖最后由 小名明SIU 于 2013-9-1 11:35 编辑

你还是好好看看push指令吧,push ax    sp = sp-2,       , ax   用到的是sp和sp+1,      第一步sp=2-2=0;第二步用到的是偏移为0和1的内存单元,应该用-d 1000:0而不是-d 1000:2

小名明SIU 发表于 2013-9-1 11:37:26

不是所有的内存都可以当做栈的,当访问不该用的内存,就会出现无效指令
页: [1]
查看完整版本: 汇编的一个作业