| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 612 人关注过本帖
标题:如何显示指定的内容?
只看楼主 加入收藏
lisong526
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-4-9
收藏
 问题点数:0 回复次数:1 
如何显示指定的内容?
如何显示指定的内容?
如:在屏幕的8行3列,用绿色显示data段中的字符串。
ASSUME CS:code
data SEGMENT
DB 'Wellcome to masm!',0
data ENDS
code SEGMENT

start: MOV DH,8
MOV DL,3
MOV CL,2
MOV AX,data
MOV DS,AX
MOV SI,0
CALL show_str

MOV AX,4c00h
INT 21h
show_str: ;此处添加显示子程序


code ends
end start

糊涂死我了书上说 输入至 B8000H~BFFFFH中的内容就会马上显示!
到底咋用呀! 我试了半天就是不显示!

2006-05-21 16:21
公子吕
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2006-5-4
收藏
得分:0 

显存里是用一个字来作为一个基本的存储单元的,例如一个'w'是用一字来存储的,其中低字节用来存储这个字母的ASCII的,高字节是用来存储这个字母的属性的,像颜色啊,前景色,背景色之类的.


你只要把字符放到显存里面0b800:0000, 程序运行的时候它会自动显示在屏幕上的,
正如上面所说的,它用一个两个字节存放一个字符,所以我下面的那个程序只能显示奇数位置的字符.
.model small
.stack
.data
str db 'weeeleceoemeee eteoe eteaeseme!e' ,0 ;将e的ascii码作显示字符的属性.
.code
start:

mov ax,@data
mov ds,ax
mov si,offset str
mov cx,16
mov ax,0b800h
mov es,ax
mov di,0
rep movsw

mov ah,7
int 21h
mov ah,4ch
int 21h
end start

这个程序在dos窗口的左上角以绿底红字(属性e)显示welcome to tasm!

这是我之前和ttzz8讨论的相近的问题。谨作参考
注意显存的地址不是你上面说的那个了,而是0b800:0000 当然可能不能机器有不同的情况发生。

2006-05-21 19:40
快速回复:如何显示指定的内容?
数据加载中...
 
   



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

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