(1)下面的程序实现依次用内存0:0-0:15单元中的内容改写程序中的数据,完成程序:
完成后的代码:
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,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;5个字单元作栈空间
start: mov ax,cs
mov ss,ax
mov sp,1ah
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
------------------------------------------------------
貌似第二题用一个栈空间就可以了吧?
- [nuojiya8] 2001也不是16的倍数呀 03/16 21:43
- [q2719833] 哦,我想让它闪烁,看看闪烁的效果,呵呵!闪烁的时候还是书上要求的颜色! 05/07 12:54
- [wsrf] 颜色属性怎么没有按书上的来呢? 05/06 22:37
- [q2719833] 哦 明白了!谢谢tomato!我都当字节看了。晕! 05/04 12:06
- [tomato] 很正确,而且也很清晰。后面的数据不是放进去了吗?你为什么认为没有放进去? 05/04 10:49
- [游客] 定义栈空间大点,能保证debug下也能正确执行。跟中断使用栈有关,博主先不必着急理解,你在这里的理解 04/29 10:48
- [游客] 博主说的对。 04/29 10:47
- [q2719833] 对 ,就是。我没考虑到!还是思考的不够严谨!谢谢aten 和tomato了! 04/22 12:54
- [aten] -_-!!我打错字了,最后改写了0:240里的数据!不知道怎么,老打错 04/21 13:34
- [aten] 呵呵,感觉也是编程习惯问题吧!你自己都已经知道了,为什么不再想想呀! 向内存0:200-0:2 04/21 13:31
[ 游客 发表于 2009-04-29 10:47 ]
博主说的对。
[ 游客 发表于 2009-04-29 10:48 ]
定义栈空间大点,能保证debug下也能正确执行。跟中断使用栈有关,博主先不必着急理解,你在这里的理解是正确的。