王爽 三色welcome 汇编代码
nnnn segment ;数据段
;0123456789abcdef
db 'welcome to masm!'
db 2h,24h,71h ;提行
nnnn ends
uuuu segment stack ;缓存段
db 128 dup(?)
uuuu ends
assume cs:code,ds:nnnn,ss:uuuu
code segment
start: ;ss,sp缓存块
mov ax,uuuu
mov ss,ax
mov sp,128
;ds数据块
mov ax,nnnn
mov ds,ax
;es初始化
mov ax,0B800H
mov es,ax
;====系统初始化 结束
mov di,160*10+30*2;行数
mov bx,16;颜色ds:[16]=2h代表的颜色
call e_rr
mov di,160*11+30*;下一行
mov bx,17;颜色ds:[16]=24h代表的颜色
call e_rr
mov di,160*12+30*2
mov bx,18;颜色ds:[16]=71h代表的颜色
call e_rr
mov ax,4c00h
int 21h
;====运行初始化
e_rr: mov si,0
mov cx,16;loop循环16次,
mov dh,ds:[bx];mov es:[di],dx es:[di+0],dl es:[di+1],dh
;dh存放字符的属性
e_cc: mov dl,ds:[si];dl存放字符的ascll码
mov es:[di],dx;dx打包存放存放到dx=dl+dh
add di,2;di自增2
inc si;si自增1
loop e_cc
ret
;====循环
;call
;ret相当于pop ip
;retf内存中的字形数据pop ip pop cs
;
;
;jcxz 条件转移指令 jmp cx=0
;loop cx中的值不等于0
;所有的条件转移指令都是短转移
;当cx=0的收惊醒jmp范围是-128~127
code ends
end start
请勿纠结代码中的命名问题,随手而为