|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 传说。 于 2014-5-9 13:11 编辑
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 si,0b70h
mov di,0
mov cx,16
s: mov al,[di]
mov byte ptr es:[si],al
inc di
add si,2
loop s
mov si,0b71h
mov cx,16
s0: mov byte ptr es:[si],42h
add si,2
loop s0
mov ax,4c00h
int 21h
code ends
end start
显示了一个。我自己的方法。 和答案不一样。 不过貌似有点麻烦。
简化一次。
- 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 di,0
- mov si,0b80h
- mov cx,16
- s: mov bl,[di]
- mov byte ptr es:[si],bl
- inc di
- inc si
- mov byte ptr es:[si],02h
- inc si
- loop s
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码 三更:
显示两种颜色的了。 以此类推。 三种颜色也这样
- 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 di,0
- mov si,0b80h
- mov cx,16
- s: mov bl,[di]
- mov byte ptr es:[si],bl
- inc di
- inc si
- mov byte ptr es:[si],02h
- inc si
- loop s
- mov cx,16
- mov si,0AE0h
- mov di,0
- s0: mov bl,[di]
- mov byte ptr es:[si],bl
- inc di
- inc si
- mov byte ptr es:[si],42h
- inc si
- loop s0
- mov ax,4c00h
- int 21h
- code ends
- end start
-
复制代码
第四次更新完整版。 貌似比答案简化点。 有什么不足还请指出。
- assume cs:code,ds:data,ss:stack
- data segment
- db'welcome to masm!'
- db 02h,21h,42h
- 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 ax,0b810h ;屏幕中位置的段地址
- mov es,ax
- mov di,0
- mov si,0b40h
- mov bx,9 ;[bl]指向第一个字符属性
-
- mov cx,3
- s3: push cx ;保护外循环用到的数据
- push si
- push di
- mov cx,10h
- s2: mov al,[di]
- mov es:[si],al
- add si,2
- inc di
- loop s2
- mov cx,10h
- sub si,1fh ;此处我用减法,算出下一循环si
- s1: mov es:[si],bl
- add si,2
- loop s1
- pop di ;数据出栈
- pop si
- pop cx
- add si,0a0h ;指向下一行 ,为下一次循环准备
- inc bx
- loop s3
-
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码
|
|