|
主题 : : 实验9,根据材料编程 [待解决] |
回复[ 7次 ]
点击[ 463次 ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-13 22:27 |
;花了不少时间,终于做出来了。贴出来跟大家分享一下. (汇编还是蛮好玩的^_^)
;每行为80个字符.即160个字节.共25行要写三行,共有22个空行.即前面空11行
;160字节*11行=1760个字节
;"welcome to masm"字符串共15字符30个字节
;属性15个字符30个字节
assume cs:code
;先将要填充的数据定义好,然后将其复制到目标内存中即可.
data segment
;160字节*11行+30字符+30字节=1760+60字节=1820字节
db 1820 dup(0)
db 'w',2,'e',2,'l',2,'c',2,'o',2,'m',2,'e',2,0,2,'t',2,'o',2,32,0,'m',2,'a',2,'s',2,'m',2
;160字节-30字节=130字节
db 130 dup(0)
db 'w',44,'e',44,'l',44,'c',44,'o',44,'m',44,'e',44,0,44,'t',44,'o',44,0,44,'m',44,'a',44,'s',44,'m',44
db 130 dup(0)
db 'w',71,'e',71,'l',71,'c',71,'o',71,'m',71,'e',71,0,71,'t',71,'o',71,0,71,'m',71,'a',71,'s',71,'m',71
;后面补0填满一屏
db 3000 dup(0)
data ends
code segment
start: mov ax,0B800H
mov es,ax
mov ax,data
mov ds,ax
mov bx,0
;4000不是一个很精确的数字,但是足以填满一屏
mov cx,4000
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end start | | |