鱼C论坛

 找回密码
 立即注册
查看: 1725|回复: 2

[已解决]关于第6章的最后一题小虾编了段 大侠们看对么,望指点迷津~

[复制链接]
发表于 2015-3-11 17:54:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写CODE段中的代码,用PUSH指令将A段中的前8个字型数据,逆序存储到B段中

程序如下:

assume cs:code,ds:a,ss:b

a segment
     dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh              
a ends

b segment
     dw 0,0,0,0,0,0,0,0               
b ends

code segment

start:  mov ax,a
        mov ds,ax    ;定义数据
        mov ax,b
        mov ss,ax
        mov sp,24    ;定义栈空间               

                mov bx,0
                mov cx,8     ;有8个数据,所以循环8次
               
S:      push ds:[bx] ;入栈
        add bx,2     ;加2指向下一个字型数据
                loop s       ;循环
               
            mov ax,4c00h
        int 21h               
               
code ends

end start     ///
////////////////
我不知道以上栈定义是不是有问题呀,
还有第一句的   ds:a,  ss:b   是不是多余的呀?  看还有木有问题? 谢谢 感谢!      

最佳答案
2015-3-11 22:35:22
mov sp,24
改成
mvo sp,16

因为b段为栈段
b segment
     dw 0,0,0,0,0,0,0,0               
b ends
共8个字,16个字节。
栈为空,sp指向16。(这里如果不明白参考问题3.6的分析)
别的没有错误
QQ图片20150311175146.png
QQ图片20150311175214.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-11 22:35:22 | 显示全部楼层    本楼为最佳答案   
mov sp,24
改成
mvo sp,16

因为b段为栈段
b segment
     dw 0,0,0,0,0,0,0,0               
b ends
共8个字,16个字节。
栈为空,sp指向16。(这里如果不明白参考问题3.6的分析)
别的没有错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-11 23:28:14 | 显示全部楼层
Seely 发表于 2015-3-11 22:35
mov sp,24
改成
mvo sp,16

嗯 tks
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 05:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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