| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1180 人关注过本帖
标题:[求助]王爽的第九章试验九在屏幕中显示字符
只看楼主 加入收藏
W649897
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-11-26
收藏
 问题点数:0 回复次数:5 
[求助]王爽的第九章试验九在屏幕中显示字符

assume cs:code,ds:data

data segment
bval byte 'Welcome to masm!'
count word 0
data ends

stack segment
word 10 dup(0)
stack ends

code segment
start:mov ax,0b800h
mov es,ax
mov ax,stack
mov ss,ax
mov sp,11;设置堆栈指针
mov ax,0
mov si,ax
mov bx,ax;设置段地址和偏移地址寄存器
mov ax,data
mov ds,ax
mov cx,0bh
L1: add bx,0a0h
loop L1
mov cx,35
L2: add si,2
loop L2 ;将显示位置设置在屏幕中间
mov count,si;
mov di,0
mov cx,16
L3: mov dl,[di];拷贝要显示的字符
mov es:[bx+si],dl
add si,2
inc di
loop L3
mov si,count
inc si
L4: mov si,10100001 ;设置字体属性
add si,2
loop L4
mov ax,4c00h
int 21h
code ends
end start
////////////////////////////经反复检查,觉得没什么问题,但是就是不能显示,请帮忙看看,谢拉!

搜索更多相关主题的帖子: 王爽 屏幕 字符 试验 
2007-08-15 10:00
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 

这是在网上找的答案 并没试验 请自己对比测试一下
[CODE]assume cs:code,ds:data,ss:stack

data segment
db 'welcome to masm!' ;定义要显示的字符串(共16字节)
db 02h,24h,71h ;定义三种颜色属性
data ends

stack segment
dw 8 dup(0)
stack ends

code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov bx,0
mov di,0
mov ax,0b872h ;算出屏幕第12行中间的显存的段起始位置放入ax中

mov cx,3 ;外循环为3次,因为要显示三个字符串
s3: push cx ;三个进栈操作为外循环s3保存相关寄存器的值
push ax ;以防止它们的值在内循环中被破坏
push di
mov es,ax ;此时es为屏幕第12行中间的显存的段起始位置
mov si,0
mov di,0

mov cx,10h ;内循环为10h次,因为一个字符串中含10h个字节
s1: mov al,ds:[bx+si]
mov es:[bx+di],al
inc si
add di,2
loop s1 ;此循环实现偶地址中存放字符

mov si,1 ;si的值设为1,从而为在显存奇地址中存放字符的颜色属性做准备
pop di ;将di的值恢复成进入内循环之前的时候的值
mov al,ds:10h[bx+di] ;取颜色属性[源OP寻址方式:相对基址变址]

mov cx,10h ;第二个内循环也为10h次
s2: mov es:[bx+si],al
add si,2
loop s2 ;此循环实现奇地址中存放字符的颜色属性

;以下4句为下一趟外循环做准备
inc di
pop ax
add ax,0ah ;将显存的段起始地址设为当前行的下一行
;[在段地址中加0ah,相当于在偏移地址中加了0a0h(=160d)]
pop cx

loop s3

mov ax,4c00h
int 21h

code ends
end start[/CODE]


win32汇编
病毒 加密
目前兴趣所在
2007-08-15 17:43
W649897
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-11-26
收藏
得分:0 

班主你好,我想找到这个程序问题出在哪里,不过还是谢谢了!我另外写了一个,但又有时能显示有时不能,这应该和系统环境有关吧,谁能解释一下原因,怎么避免,谢!

2007-08-15 20:46
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
那就帮不了你了  我汇编很菜的

win32汇编
病毒 加密
目前兴趣所在
2007-08-15 20:49
W649897
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-11-26
收藏
得分:0 
问题已解决了,还是谢谢斑竹的照看了
2007-08-15 22:42
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
问题解决我就沉底了

win32汇编
病毒 加密
目前兴趣所在
2007-08-15 23:03
快速回复:[求助]王爽的第九章试验九在屏幕中显示字符
数据加载中...
 
   



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

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