王爽,汇编语言,实验10的一个问题,显示乱码
时间:2011-08-08
来源:互联网
这个题目就是写一个子程序,功能是在指定位置,用指定的颜色显示一个用0结束的字符串
参数:dh:行号,DL:列号,CL:颜色,DS:SI指向字符串首位
现在要在屏幕8行3列,用绿色显示DTAT段中的字符串,但我程序运行下来却显示出乱码,代码如下,希望各位高手帮助
assume cs:code,ss:stack
data segment
db 'Welcome to masm!',0
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
s: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str:
push si
mov ax,0b800h
mov es,ax
sub dh,1
mov al,160
mul dh
mov bx,ax
mov dh,0
mov di,dx
p: push cx
mov cl,0
mov ch,ds:[si]
jcxz ok
pop cx
mov al,ds:[si]
mov es:[bx+di],al
inc di
mov es:[bx+di],cl
inc di
inc si
jmp p
ok:pop cx
pop si
ret
code ends
end s
参数:dh:行号,DL:列号,CL:颜色,DS:SI指向字符串首位
现在要在屏幕8行3列,用绿色显示DTAT段中的字符串,但我程序运行下来却显示出乱码,代码如下,希望各位高手帮助
assume cs:code,ss:stack
data segment
db 'Welcome to masm!',0
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
s: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str:
push si
mov ax,0b800h
mov es,ax
sub dh,1
mov al,160
mul dh
mov bx,ax
mov dh,0
mov di,dx
p: push cx
mov cl,0
mov ch,ds:[si]
jcxz ok
pop cx
mov al,ds:[si]
mov es:[bx+di],al
inc di
mov es:[bx+di],cl
inc di
inc si
jmp p
ok:pop cx
pop si
ret
code ends
end s
作者: AllenlJiang 发布时间: 2011-08-08
楼主,你为什么不用debug一步步地调试呢?程序其实并不复杂的。自己调试出来印象才会更深刻。
作者: haojiahuo50401 发布时间: 2011-08-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28