- [kakaxi3dai] 哦!呵呵,是啊.谢谢yigeling的提醒. 04/26 17:53
- [yigeling] 写的不错。但和要求相比功能号都多加了1,不要忽略这种细节啊。 04/26 16:35
- [kakaxi3dai] 恩!今天打算弄完,后天就把课程设计2做出来 04/25 19:48
- [kakaxi3dai] 哎!还可以吧. 不过感觉要学的东西太多了. 04/25 19:47
- [游客] 就快学完了,加油! 04/25 00:08
- [app] 应该很有成就感吧,呵呵! 04/24 21:50
- [kakaxi3dai] 其实我也是在看显示结果的时候发现字母的颜色不同,所以用debug查看CL 保存的颜色数据,发现了上述 04/22 11:51
- [sysnap] 博主很用心啊,要是我肯定懒于用debug调试了,也不会发现cx少一这个问题~ 04/21 10:09
- [wdm] 楼主真是有意思。 loop本来就是要将cx减1的啊。呵呵 以后写程序的时候不要走私啊。咯咯~~ 04/21 09:54
- [kakaxi3dai] 真是的,自己马虎写错了 ============================== s :pu 04/20 20:49
- [3989646] 你好,我刚自学汇编,还没怎么入门,希望能教教我 03/26 09:32
- [kakaxi3dai] 好啊!我的QQ 是 412793645 03/28 22:05
- [lonely200808] 你好!我也是姓杨,在自学汇编语言,请多指教!有没有QQ联系呀> 03/26 17:25
[2008-03-22 16:13] 实验5 .6
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
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,c
mov es,ax
mov ax,b
mov ss,ax /*这里把SS 当成一个数据段来处理,不涉及到sp。不用初始SP的值.如果初始SP值,SS段的数据将被修改*/
mov bx,0
mov ax,0
mov cx,8
s:
mov al,[bx]
add al,ss:[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
[ wdm 发表于 2008-03-23 19:38 ]
博主注意的很到位!
如果设置栈段为b数据段,在T跟踪的时候时会出现数据的差错。但是,假如用g命令直接运行就没有问题了。
[ 游客 发表于 2008-03-23 22:36 ]
谢谢你的夸奖.
可是,我用了你的方法,设置了SP的值.用 G 指令先运行到LOOP 指令,再用-P指令运行.执行完后用 -D查看 SS(b段) 中的数据发现被改写了.由此我产生疑问:
1>是不是在DEBUG 中 -G 也是中断指令啊,会用到堆栈段.
如果-G 不算中断指令,那么SS段的数据被改写了,像是运行了-T指令后的效果.为什么?
2>若程序中只设置SS段地址而不初始SP的值,SS段能做为一个数据段来使用,即:DEBUG中-T指令运行的数据不保存在堆栈SS段中.为什么?
3>若程序中只设置SS段地址而不初始SP的值,那么DEBUG 中T 指令运行后,保存的数据在哪个存储空间?是堆栈SS吗?
[ mess 发表于 2008-03-26 10:03 ]
楼上的应该就是博主了,问的三个问题感觉很绕口啊,不过越是绕口的解决后越是对知识清晰啊。这个问题和第四章第一个程序有些类似,早早的就涉及到了“中断”的问题,可以不深入了解,但是简单了解也是很有必要的。
这三个问题的不错,我就帮博主发到论坛中去吧,这样讨论起来才热闹啊~
[ mess 发表于 2008-03-26 10:10 ]
帖子链接:-)
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=free&kind=1220&qkSg=2&qID=13391
[ kakaxi3dai 发表于 2008-03-26 20:04 ]
恩,不错.