请问一下
本帖最后由 loop 于 2011-5-27 19:56 编辑我实验9做完的程序 当时调试是没问题的, 也就是说可以在屏幕上输出那一串字符,但是最近重装了系统 导致现在那个程序一闪而过了这是怎么一回事??
实验10 第一个程序也做完了可以在屏幕的要求的位置显示字符 不过程序上面总带着一行错误提示,。。。
"write fault error writing device PRN"
不明白是为什么谁能帮帮我 贴下源码和报错图片 assume cs:code,ds:data
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
callshow_str
mov ax,4c00h
int 21h
show_str: mov ax,0b800h
mov es,ax
mov al,0a0h
mul dh
mov dh,0
add dx,dx
add ax,dx
mov bx,ax
push cx
mov cx,20h
s: push cx
movcl,
jcxz back
add sp,2
mov al,
mov es:,al
inc bx
pop cx
mov es:,cl
inc si
inc bx
sub sp,4
pop cx
add sp,2
loop s
back: ret
code ends
end start
实验十的源码 报错的就是那一句话我也经写出来了 代码本身就有问题, 先把代码弄好先,再看看还出错否? 我说了当前的字符已经可以显示出来了只不过在显示的同时还有个报错提示我不明白这是为什么
我知道代码有问题 请指出问题所在 本帖最后由 winddyj 于 2011-5-27 11:04 编辑
在我电脑上,程序也无显示,也无法返回
程序思路没有错,但堆栈没平衡,以致于程序调用子程序后无法返回
修改了下,无问题了
sub sp,4
pop cx
loop s
back: add sp,4
ret
winddyj 发表于 2011-5-27 11:01 static/image/common/back.gif
在我电脑上,程序也无显示,也无法返回
程序思路没有错,但堆栈没平衡,以致于程序调用子程序后无法返回
修改 ...
谢谢楼上 不过我发觉我是搞复杂了 其实压栈一次就足够了SP乱跳给我自己都跳乱了
程序已经搞定了
页:
[1]