鱼C论坛

 找回密码
 立即注册

实验9 三行颜色Welcome

热度 1已有 457 次阅读2018-1-27 14:41 |个人分类:ASM

assume cs:codesg,ds:dataseg,ss:stack
dataseg segment
dw ' W',' e',' l',' c',' o',' m',' e','  '
dw ' t',' o','  ',' m',' a',' s',' m',' !'
;低位存放ascii   高位存放属性 所以前面的高位留空
; 闪  背景 高 前景
; R G B 亮 R G B 
;黑底绿色 0 0 0 0 0 0 1 0 = 02H
;绿底红色 0 0 1 0 0 1 0 0 = 24H
;白底蓝色 0 1 1 1 0 0 0 1 = 71H
db 0 ;这个字节存放次数
dataseg ends
stack segment
dw 02H,24H,71H
stack ends
codesg segment
start:
mov ax,dataseg
mov ds,ax ;和data段发生关系
mov ax,stack
mov ss,ax ;和stack发生关系
mov ax,0b800H ;写入的显存段地址
mov es,ax
mov si,680H ;写入的显存偏移地址
mov cx,3 ;3行
row:
pop dx ;取出颜色
mov ds:[20H],cx
mov cx,16 ;16个字符
line:
mov ax,ds:[bx] ;读取welcome
mov es:[si],ax ;低位写入ascii
mov es:[si+1],dl ;高位写入颜色
add bx,2
add si,2
loop line
mov cx,ds:[20H]
;计算下一行要显示的偏移地址
add si,80H
;清空bx 重新指向 Welcome 的 'W'
sub bx,bx
loop row
mov ax,4c00h
int 21h

codesg ends
end start

自己写的 ,其中的收获很多。调试不好调真的,你调试的时候 显存区的东西就没了。

留下笔记。。等萌新踩坑


路过

鸡蛋
1

鲜花

握手

雷人

刚表态过的朋友 (1 人)

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-23 16:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部