|
主题 : : 实验9的问题 [已解决] |
回复[ 5次 ]
点击[ 353次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-02-26 11:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:2
注册日期:2009-02-14 17:14 |
问题我改了下 在屏幕输出3种颜色的WELCOME TO MASM!
XXXXXXXXXXXXXXXWELCOME TO MASMXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXWELCOME TO MASMXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXWELCOME TO MASMXXXXXXXXXXXXXXXXXXX
从定义好了地方读取颜色数据
但是我只能改到把颜色数据放在STACK中
请问高手怎么才能把颜色数据放在DATA中(放在这里寄存器不够用 可能是算法不行)
高手帮下忙
assume cs:code,ds:data,ss:stack
data segment
db 'Welcome to masm!'
data ends
stack segment
dw 8 dup (0)
db 2h,24h,71h
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov ax,0B800h
mov es,ax
mov bp,0
mov bx,0
mov cx,3
s:
push cx
mov si,0
mov di,0
mov ah,[bp].10h
mov cx,16
s0:
mov al,[di]
mov es:[bx].720h[si],ax
inc di
add si,2
loop s0
inc bp
add bx,160
pop cx
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-02-26 16:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
但是我只能改到把颜色数据放在STACK中
请问高手怎么才能把颜色数据放在DATA中(放在这里寄存器不够用 可能是算法不行)
------------
把颜色三个值直接放在db 'Welcome to masm!'
后面就好了,调用用ds:[..]读取就行了啊~ | | |
|
|
|
|
[第2楼]
[ 回复时间:2009-02-26 17:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:2
注册日期:2009-02-14 17:14 |
知道啊
但是只能用2个循环啊~
DI用来读取字符窜
SI用来读取元素
BX是行列
但是就不够用了
DI读取字符窜依次只能增加1
但是元素依次增加却是2
就导致寄存器不够用!! | | |
|
|
|
|
[第3楼]
[ 回复时间:2009-02-27 14:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-02-22 22:46 |
assume cs:code
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b800h
mov ds,ax
mov bx,1920 ;ds:[bx]指向第12行第一个字符的显存
mov ax,data ;指向数据
mov es,ax
mov cx,3
mov bp,0
s0: push cx
mov cx,16
mov si,0
mov di,0
s: mov al,es:[di]
mov [bx+64+si],al ;显示的字母
mov ah,es:[bp+16]
mov [bx+65+si],ah ;显示的颜色
add si,2
inc di
loop s
pop cx
add bx,160 ;显示下一行
inc bp ;改变颜色
loop s0
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第4楼]
[ 回复时间:2009-03-02 18:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:2
注册日期:2009-02-14 17:14 |
|
|
|
|
|
[第5楼]
[ 回复时间:2009-03-04 18:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:2
注册日期:2009-02-14 17:14 |
此贴由 贴主 于 [ 2009-03-04 18:27 ] 结贴。 结贴原因:问题已解决 | | |
|