标题:[求助]王爽《汇编语言》第六章测试点6.1第二题
取消只看楼主
skybluechen
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-8-2
 问题点数:0 回复次数:4 
[求助]王爽《汇编语言》第六章测试点6.1第二题

题目要求:
下面的程序实现依次用内存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 [bx]
_________
add bx,2
loop s

mov ax,4c00H
int 21H
codesg ends
end start
我写出的第一个程序为:
assume cs:codesg
codesg segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
dw 0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov sp,26
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
程序的运行结果如下图:


从上图可以看出,程序只在第一次循环时实现数据传送。这是为什么呢?还有一个问题让我不解,某个网友给出的参考答案跟我的答案是一致的。换言之,该网友使用上述源代码在其电脑上实现了程序预期的功能。难道问题出在我的电脑上,而不是我所写的源代码?
在我看来,初时ss:sp指向栈底,push [bx]指令让一个字的数据入栈,pop [bx]指令让一个字的数据出栈。这样一进一出,也就是循环一次后,ss:sp依然指向栈底。根据这种思路,栈空间的大小为一个字就足够了。根据这种思路,我将程序修改如下:
assume cs:codesg
codesg segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
dw 0
start: mov ax,cs
mov ss,ax
mov sp,18
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
程序的运行结果如下图:


从上图可以看出,我的思路有误。
以上问题,敬请高手指教,小弟不胜感激!

搜索更多相关主题的帖子: 王爽 汇编语言 
2007-08-03 00:43
skybluechen
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-8-2
得分:0 
各位兄弟姐妹,这可是我的精心打造的求助贴哦?
怎么全是看客,没人回帖呢?
期待ing……

不愿灵魂被屠杀; 不愿思想被强奸; 不愿生活被蹂躏;
2007-08-03 14:52
skybluechen
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-8-2
得分:0 

非常感谢版主!!!!!!
看来问题真的出在我的系统上。
兄弟,再麻烦你一下,不知你没有测试一下我第二种思路是否行得通?
就是只用一个字的栈空间。
再次感谢!!!!!


不愿灵魂被屠杀; 不愿思想被强奸; 不愿生活被蹂躏;
2007-08-04 22:09
skybluechen
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-8-2
得分:0 
以下是引用无理取闹在2007-8-3 16:50:31的发言:
看了好半天也没看出什么毛病来 唉 水平有限

至少你认真看了,谢谢哈
如果你愿意,我们交个朋友,一起搞定汇编,嘿嘿……


不愿灵魂被屠杀; 不愿思想被强奸; 不愿生活被蹂躏;
2007-08-04 22:12
skybluechen
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-8-2
得分:0 
非常感谢各位的回答!

不愿灵魂被屠杀; 不愿思想被强奸; 不愿生活被蹂躏;
2007-08-15 00:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-160017-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.394689 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved