鱼C论坛

 找回密码
 立即注册
查看: 2665|回复: 6

关于屏幕显示的问题

[复制链接]
发表于 2012-2-29 21:41:21 | 显示全部楼层 |阅读模式
2鱼币
捕获.PNG
assume cs:code,ds:data
data segment
    db "welcome to masm!"
data ends
code segment
start:mov ax,data
      mov ds,ax
      mov bx,0
   
   mov ax,0b872h
   mov es,ax
   mov si,0ah
   
   mov cx,16
s:   mov al,ds:[bx]
   mov es:[si],al
   mov al,00000010b
   mov es:[si+1],al
   inc si
   inc bx
   loop s
   
   mov ax,4c00h
   int 21h
code ends
end start   
=====================================
上面的代码执行后结果为什么不是绿底的“welcome to masm!"呢?
最上面是我执行后的现象,多多指教,谢了


最佳答案

查看完整内容

s: mov al,ds: mov es:[si],al mov al,00000010b ; 这里你可以用16进制数表示 干嘛用2进制呢.. 绿色直接 mov al,2 不过用2进制确实 方便对照颜色改!~ mov es:[si+1],al inc si inc bx loop s 低8位存放数据 高八位存放颜色 ds 段每次增加1 es段每次 要加2 也就是 si+2 才能到下一个数据存放的位置 比如 XXXX:0000 01 02 03 04 05 06 07 08 ..................... ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-29 21:41:22 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-2-29 22:25 编辑

s:   mov al,ds:[bx]
   mov es:[si],al
   mov al,00000010b  ; 这里你可以用16进制数表示 干嘛用2进制呢.. 绿色直接 mov al,2  不过用2进制确实 方便对照颜色改!~
   mov es:[si+1],al
   inc si
  inc bx
   loop s
低8位存放数据  高八位存放颜色    ds 段每次增加1   es段每次 要加2  也就是 si+2 才能到下一个数据存放的位置
比如
XXXX:0000   01   02    03    04     05    06    07    08 .....................
                数据  颜色  数据  颜色  数据 颜色.................
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-29 23:01:04 | 显示全部楼层
有两处错误导致结果错误
整个程序的结构是没有错的,错在细节
1.颜色背景在前,前景在后,所以应该是 00100000b (绿底 = 绿背景)
2.si作为显示器内存循环的变量,应该每次循环都加2,所以是 add si,2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-29 23:41:40 | 显示全部楼层
错误原因前面两位兄台已经解释了,我就不说了。但想向你请教一下怎么贴图的??我弄好久都不会贴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-1 09:11:56 | 显示全部楼层

2.PNG ————- 捕获.PNG 你在回贴时点击右上的高级模式,而后有个“图片“选项,点击以后就可以上传图片了,上传后点击图片本身,这样就贴上去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-1 09:14:22 | 显示全部楼层
莫名其妙 发表于 2012-2-29 22:22
s:   mov al,ds:
   mov es:[si],al
   mov al,00000010b  ; 这里你可以用16进制数表示 干嘛用2进制呢..  ...

明白了,非常感谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-1 09:15:04 | 显示全部楼层
夏洛 发表于 2012-2-29 23:01
有两处错误导致结果错误
整个程序的结构是没有错的,错在细节
1.颜色背景在前,前景在后,所以应该是 001 ...

太感谢了:handshake
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 13:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表