|
主题 : : 我写的实验9的代码,为什么不显示W这个字母啊???其他字母都显示了! [待解决] |
回复[ 1次 ]
点击[ 238次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2012-12-30 21:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-12-30 20:51 |
;编程:在屏幕中间分别显示绿色,绿底红色,白色蓝底的字符串’welcome to masm!’
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
datasg ends
codesg segment
start: mov ax,0b800h
mov ds,ax
mov ax,datasg
mov es,ax
mov bx,1 ;bx用于改变显示的颜色属性
mov si,0 ;si用于数据段的变化增量即datasg每次的变化量
mov di,0 ;di用于生成目标的增量即所求三行的增量
mov cx,17
s: mov al,2h
mov 1824[bx],al
mov al,24h
mov 1984[bx],al
mov al,71h
mov 2144[bx],al
mov al,es:[si]
mov 1824[di],al
mov 1984[di],al
mov 2144[di],al
add bx,2
add di,2
inc si
loop s
mov ax,4C00H
int 21H
codesg ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2013-05-17 07:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06 |
可能被覆盖了 看我的吧
assume cs:code
data segment
db 'w e l c o m e t o m a s m ! '
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800H
mov es,ax
mov cx,16
mov bx,0
s: mov al,[bx]
mov es:[bx+64].8c0H,al
mov es:[bx+64].960H,al
mov es:[bx+64].0A00H,al
mov ah,00000010B ;或2h 写成2进制比较直观
mov es:[bx+65].8c0H,ah ;闪烁\背景R\G\B\高亮\前景R\G\B 1为开启 2为关闭
mov ah,01000010b ; 11111111B 则为闪烁高亮白字白背景
mov es:[bx+65].960H,ah
mov ah,01110001b
mov es:[bx+65].0A00H,ah
inc bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|