到拉萨去兜风 发表于 2012-12-10 21:58:47

检测点6.1 第二题

检测点6.1

(2)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数据的传送用栈来进行。栈空间设置在程序内。完成程序:

assume cs:codesg

codesg segment

         dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

          dw 0,0,0,0,0
start:mov ax, _____

         mov ss,ax

         mov sp,   _____

          mov ax,0

         mov ds,ax

         mov bx,0

         mov cx,8

    s:push

          ______

      add bx,2

      loop s

      mov ax,4c00h

      int 21h

codesg ends

end start
求高手一步一步的详细,谢谢!!!!{:5_111:}{:5_111:}{:5_111:}

到拉萨去兜风 发表于 2012-12-10 22:30:45

s:push
这时是将DS:IP处的数据入栈。 栈地址:SS:SP
入栈,哪下一步是不是就出栈,命今是:POP ——————   ,它出栈的数据放在哪里去呢,应该是去覆盖程序中的数据    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h    这些地址应该是cs:0,cs:2,cs:4
cs:6,cs:8, cs:a, cs:c, cs:e。就是后面这一点弯转不过来

Huang1234 发表于 2017-12-25 13:14:23

到拉萨去兜风 发表于 2012-12-10 22:30
s:push
这时是将DS:IP处的数据入栈。 栈地址:SS:SP
入栈,哪下一步是不是就出栈,命今是:POP —— ...

应该是POP到CS:0代码段里去了,也就是程序段,题目的意思,把数据覆盖到程序里,不知道这样理解对不对?
页: [1]
查看完整版本: 检测点6.1 第二题