实验9的作业做出来了,但是单步调试有问题,你们有遇到吗?
搞了半天终于把实验9的作业做出来了,但是单步调试的时候,才走几步程序就正常结束了,不知是怎么回事,你们有没有遇到过啊?????(下面有单步执行的图和源代码)单步执行的图:
==========================================================================
http://bbs.fishc.com/data/attachment/album/201110/01/134952f4opnnpoaey6a6w5.png
==========================================================================
源代码:
==========================================================================
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!' ;保存要输出的数据(共16字节)
db 02H,24H,71H ;保存三种颜色
data ends
stack segment
dw 0 ;保存临时数据
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,2
mov ax,0b872H ;定位输出位置段地址
mov es,ax
mov ax,0
mov si,0
mov cx,3
s: mov bx,0
mov di,0
push cx
add di,ax
mov cx,10H
s0: mov dl,ds: ;定位字母偏移地址
mov dh, ;定位颜色偏移地址
mov es:,dx
inc bx
add di,2
loop s0
add ax,160 ;换行后起始偏移地址
add si,1 ;指向下一个颜色代码偏移地址
pop cx
loop s
mov ax,4c00H
int 21H
code ends
end start
没有 我根本不关注监测点直接往后学 ;P 因为我不喜欢 检测自己学了 多少 只要自己知道学了这些事干什么用的就行了 嗜血丨灵异狂 发表于 2011-10-1 16:22 static/image/common/back.gif
因为我不喜欢 检测自己学了 多少 只要自己知道学了这些事干什么用的就行了
呵呵,勇往直前?????:handshake
assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm!" ;保存要输出的数据(共16字节)
db 02H,24H,71H ;保存三种颜色
data ends
stack segment
db 0 ;保存临时数据
stack ends
code segment
start:mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,6
mov ax,0b872h ;定位输出位置段地址
mov es,ax你把SP改成6吧,
你下面进行了3次PUSH CX
这样就可以正常调试了!
老头子学汇编 发表于 2011-10-1 21:13 static/image/common/back.gif
你把SP改成6吧,
你下面进行了3次PUSH CX
这样就可以正常调试了!
好像还是不行啊,我sp设置为6,单步时就成下面图片那样了
http://bbs.fishc.com/data/attachment/album/201110/01/212451tzt3ps3nig14q5l8.png
assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm!" ;保存要输出的数据(共16字节)
db 02H,24H,71H ;保存三种颜色
data ends
stack segment
db 16 dup (0) ;保存临时数据
stack ends
code segment
start:mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b872h ;定位输出位置段地址
mov es,ax
mov ax,0
mov si,0不好意思,刚刚我试了你前面的问题,没有运行到后面,
现在这样修改就可以
不会出现错误了!
老头子学汇编 发表于 2011-10-1 22:19 static/image/common/back.gif
不好意思,刚刚我试了你前面的问题,没有运行到后面,
现在这样修改就可以
不会出现错误了!
谢谢你的指点,但是为什么需要把栈扩大呢?我每次只需要压一个字节进去,定义一个字空间的栈应该足够了啊,难道栈的数据不能被覆盖,还是别的什么东东要用到栈啊?
gongheng 发表于 2011-10-1 23:51 static/image/common/back.gif
谢谢你的指点,但是为什么需要把栈扩大呢?我每次只需要压一个字节进去,定义一个字空间的栈应该足够了啊 ...
assume cs:code,ds:data
data segment
db 'welcome to masm!' ;保存要输出的数据(共16字节)
db 02H,24H,71H ;保存三种颜色
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b872H ;定位输出位置段地址
mov es,ax
mov ax,0
mov si,0
不好意思,那么晚才回复你!
其实你这里不定义一个空栈也行的!当你定义一个空栈的时候要注意什么?
你看一下书上的:第3章3.8栈顶超越的问题
还有(谢谢你的指点)
指点说不上,大家交流交流
老头子学汇编 发表于 2011-10-2 07:18 static/image/common/back.gif
不好意思,那么晚才回复你!
其实你这里不定义一个空栈也行的!当你定义一个空栈的时候要注意什么? ...
那谢谢你的帮助,我去看看书上怎么说的!!!{:7_173:}
定义一个字,实际也是占用了16个字节. longyanjy 发表于 2011-10-9 01:08 static/image/common/back.gif
定义一个字,实际也是占用了16个字节.
为什么需要这么多啊?
页:
[1]