汇编语言向显存B800段写入数据无效,求解

ASSUMECS:CODE,DS:DATADATASEGMENTDB'WELCOMETOMASM!'DATAENDSCODESEGMENTSTART:MOVAX,DATA... ASSUME CS:CODE,DS:DATADATA SEGMENT DB 'WELCOME TO MASM!'DATA ENDSCODE SEGMENTSTART: MOV AX,DATA MOV DS,AX MOV AX,0B800H MOV ES,AX MOV BX,0 MOV SI,0 MOV CX,16S: MOV AL,[BX] MOV AH,2 MOV ES:[SI],AX INC BX ADD SI,2 LOOP S MOV AX,4C00H INT 21HCODE ENDSEND START
使用DEBUG查看运行状态,发现执行MOV ES:[SI],AX这一句后,B800:0的内容根本不是0257(输出绿色W字母),跪求高手解释……
展开
 我来答
做而论道
高能答主

2014-01-17 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
B800:0的内容根本不是0257(输出绿色W字母),跪求高手解释……

----

B800:0的内容,位置是屏幕的左上角。

输出绿色W字母之后,再用 DEBUG 操作,屏幕就滚动,屏幕的左上角,就不是绿色W字母了。

B800:0的内容,显然就不是0257了。
更多追问追答
追问
假设屏幕有内容,执行.exe文件,没有任何反应,cls清屏后再执行.exe就可以在第一行正常显示,请问向显存中写入的数据难道不会覆盖当前的屏幕状态从而改写第一行的内容吗?
追答
假设屏幕有内容,执行.exe文件,没有任何反应,
--可能滚动出去了。

cls清屏后再执行.exe就可以在第一行正常显示,
--原来屏幕没有内容,执行后,没有滚动,即可看见。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kuangbenbaquan
2019-02-21
知道答主
回答量:1
采纳率:0%
帮助的人:777
展开全部
用debug运行连接后的exe文件,再输入G命令就OK了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c8e6ca4
2019-01-17
知道答主
回答量:1
采纳率:0%
帮助的人:789
展开全部
cls再运行,兄弟我和你的程序很接近
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b1b680
2014-01-17 · TA获得超过966个赞
知道小有建树答主
回答量:978
采纳率:33%
帮助的人:628万
展开全部
调试的时候最好不要使用最上面的行,要不你程序调试的时候,容易滚到屏幕外,你就看不到了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式