. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
转移指令的原理
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
实验九我试着编写了一下,为什么不能输出到显示器上呢?求助
[待解决]
回复[
4
次 ] 点击[
368
次 ]
10416500900
[帖 主]
[ 发表时间:2012-02-01 11:04 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-12-03 19:21
assume cs:a,ds:b
b segment
db'welcome to masm!'
b ends
a segment
sata:mov cx,16
mov ax,0b800h
mov es,ax
mov ax,b
mov ds,ax
mov ax,0
mov si,0
mov di,0
s:mov al,[si]
mov ah,02h
mov es:[di],ax
inc si
add di,2
loop s
mov ax,4c00h
int 21h
a ends
end sata
运行后应该在屏幕左上角输出绿色‘welcome to masm!'为什么什么反应都没有?
chinatree
[第
1
楼]
[ 回复时间:2012-02-01 13:18 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
你能先运行cmd吗?在cmd里再运行这个程序就应该没问题了,我想是因为黑窗口一闪而过你没来的及看。
10416500900
[第
2
楼]
[ 回复时间:2012-02-02 02:10 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-12-03 19:21
我是在cmd里运行的,运行后就立接返回到cmd了,看不到任何执行过程,没有显示器输出。
chinatree
[第
3
楼]
[ 回复时间:2012-02-02 09:37 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
我以前也有遇到,有2个办法:1,用debug加载它,然后用G命令运行,这样就显示出来了。2,在程序中加2行代码,在mov ax,4c00h
int 21h
前加上
mov ah,7
int 21h
这两行,做用是按任意键退出,但是会使程序暂停。
tomato
[第
4
楼]
[ 回复时间:2012-02-04 11:04 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
楼主运行的时候是不是屏幕是满屏?如果是,那就是,已经显示出来了,然后滚屏了,将已经显示出来的东西覆盖了。因为你现在显示在屏幕的第一行,解决这个问题,就是将显示的位置向后挪几行。这样,滚屏之后,只会覆盖第一行,而不会覆盖到后面的行。另外一个办法就是,在显示之前清一下屏,然后,就不会滚屏,第一行就会显示出来而不会覆盖掉。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved