| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 712 人关注过本帖
标题:[讨论]为何我的程序运行时是乱码?
只看楼主 加入收藏
wchx215
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-4
收藏
 问题点数:0 回复次数:4 
[讨论]为何我的程序运行时是乱码?

code segment
assume cs:code
start: mov ax,cs ;安装程序到软盘
mov es,ax
mov bx,offset os
mov ah,3
mov al,2
mov ch,0
mov cl,1
mov dh,0
mov dl,0
int 13h
mov ax,4c00h
int 21h

os: jmp short osstart ;任务程序
a db '1) reset pc '
b db '2) start system '
c db '3) clock '
d db '4) set clock '
e db 'please input:'

osstart: mov ax,cs ;显示字幕
mov ss,ax
mov sp,512
mov ds,ax


mov si,offset a
mov ax,0b800h
mov es,ax
mov di,160*10+32*2
mov cx,4
show:push cx
mov cx,16
s: mov al,ds:[si]
mov es:[di],al
add si,1
add di,2
loop s
add di,128
pop cx
loop show

mov cx,13 ;显示要输入的一行
s1:mov al,[si]
mov es:[di],al
add si,1
add di,2
loop s1

mov bh,0 ;置光标位置
mov dh,14
mov dl,45
mov ah,2
int 10h
stack1 db 512-($-offset os) dup(0)
code ends
end start
当系统从软盘启动时显示的是乱码,我实在想不出是什么原因?
当我把这程序改写一下,不当做操作系统时,能正常显示的。

搜索更多相关主题的帖子: 乱码 运行 
2006-10-29 17:57
wchx215
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-4
收藏
得分:0 
请高手帮帮忙呀!!!
2006-10-29 17:58
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

用软盘启动的话,应该不只有这些代码(程序开始应该是mov ax,code),应该有相关的*.IMG文件,虚拟机也需要的.

因为机器启动程序是要被加载到7C00H处的,所以mov ax,code语句就是让程序加载CODE段的内容,这样就不会显示乱码,否则首先加载7C00H处的内容,显示就是乱码.


2006-10-29 19:06
wchx215
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-4
收藏
得分:0 
首先谢谢你的回答。
启动时,不是计算机自动将软盘的内容加载至7c00h处,然后执行7c00h处吗?
还有我改了,把数据那部分放到后面。第一句变成mov ax,cs,还是不行呀!你能说具体些吗?

我的QQ是623575521,希望能加我!!!
希望能与你多交流!!!
2006-10-29 22:02
wchx215
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-4
收藏
得分:0 
哈哈!谢谢你哦!经过你的提醒,终于搞明白问题在哪里了!!!
我已经弄出来了,再次感谢3楼!!!
2006-10-29 22:13
快速回复:[讨论]为何我的程序运行时是乱码?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018090 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved