汇编网首页登录博客注册
ryan1779的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
文章收藏
友情链接

[2009-07-12 12:49] 检测点6.1

(1)下面的程序实现一次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

start:mov ax,0
      mov ds,ax
      mov bx,0

      mov cx,8
    s:mov ax,[bx]
      mov cs:[bx],ax          
     -----------------
      add bx,2
      loop s

      mov ax,4c00h
      int 21h

codesg ends
end start


(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,0,0,0,0

start:mov ax,cs
             ----
      mov ss,ax
      mov sp,14h
             -----

      mov ax,0
      mov ds,ax
      mov bx,0
      mov cx,8
    s:push [bx]
      pop cs:[bx]
      -------------
      add bx,2
      loop s

      mov ax,4c00h
      int 21h

codesg ends
end start
评论次数(2)  |  浏览次数(381)  |  类型(汇编作业) |  收藏此文  | 

[  younggay   发表于  2009-07-14 14:24  ]

mov sp,14h 
---------
sp设置成这个值,如果直接运行应该没问题,但是要是在debug下跟踪看过程,估计结果会有偏差,因为T等中断指令也会用到当前栈。

[  ryan1779   发表于  2009-07-14 17:10  ]

应该SP=24h,我忘记把前面的10h数据+上了。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码