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

我的博客

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

[2011-10-15 02:45] 实验5.(5) 【有图有解释】

图片载入中
;===============================
;        实验5.(5)
;编写Code段中的代码,将a段和b段中
;的数据依次相加,将结果存到C段中 
;堆栈实现 调试了好久才弄出来。0.0
;===============================

assume cs:code

a segment
        db 1,2,3,4,5,6,7,8
a ends

b segment
        db 1,2,3,4,5,6,7,8
b ends

c1 segment
        db 0,0,0,0,0,0,0,0
c1 ends

code segment
start:        mov ax,c1       ;由于C标号编译不通过所以改为C1
        mov ss,ax
        mov sp,0ah        ;设置堆栈指针

        mov ax,a
        mov es,ax        ;设置附加段指向ES:0

        mov ax,b
        mov ds,ax        ;设置数据段指向DS:0

        mov bx,0
        mov cx,8        ;计数器 循环8次

s:        mov ax,[bx].8                ;将DS:8处字单元送入AX
        mov dx,es:[bx].8        ;将ES:8处字单元送入DX
        add dx,ax                ;将二个单元处内容相加
        push dx                        ;入栈
        sub bx,2                ;指向上一个字
        loop s                        

        mov ax,4c00h
        int 21h
code ends
end start

编译通过,结果对题(如图),但有个问题就是单步跟踪调试时老是出现错误。。不知是栈顶没设好还是什么原因。还望路过的大哥能指点迷精。。多谢 。
评论次数(0)  |  浏览次数(346)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码