|
主题 : : 实验9(比较懒的写法,大家指正下,哪里需要改进。) [待解决] |
回复[ 3次 ]
点击[ 386次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-05-06 21:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-04 18:10 |
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov bp,64
mov si,0
mov di,0
mov cx,16
;以上属常规初始化
;一下属功能实现部分
s: mov al,[bx+si] ;以字节为单位,复制字符串,使用地位字节存储
mov ah,2h ;设置属性:显示绿色(00000010)即2H,使用高位字节存储
mov es:780h[bp+di],ax ;复制ax的内容到目的地址
mov ah,24h ;覆盖ah内容,从而改变属性值
mov es:780h[bp+di+0a0h],ax ;复制ax的内容到目的地址,此时已是第2行
mov ah,1h ;覆盖ah内容,从而改变属性值
mov es:780h[bp+di+140h],ax ;复制ax的内容到目的地址,此时已是第3行
inc si
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start
屏幕中间?
不知道小弟定位错了没?望高人指点下。。。。。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-05-07 14:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-24 09:00 |
你这个思路不错 不过 你这里bp是64是?怎么来的 | | |
|
|
|
|
[第2楼]
[ 回复时间:2009-05-16 22:10 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-25 16:57 |
|
|
|
|
|
[第3楼]
[ 回复时间:2009-05-20 13:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-04 18:10 |
定位也搞定了,现在是完全正确的版本了!
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov bp,64
mov si,0
mov di,0
mov cx,16
;以上属常规初始化
;一下属功能实现部分
s: mov al,[bx+si] ;以字节为单位,复制字符串,使用地位字节存储
mov ah,2h ;设置属性:显示绿色(00000010)即2H,使用高位字节存储
mov es:0be0h[bp+di],ax ;复制ax的内容到目的地址
mov ah,24h ;覆盖ah内容,从而改变属性值
mov es:0be0h[bp+di+0a0h],ax ;复制ax的内容到目的地址,此时已是第2行
mov ah,1h ;覆盖ah内容,从而改变属性值
mov es:0be0h[bp+di+140h],ax ;复制ax的内容到目的地址,此时已是第3行
inc si
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|