【学习笔记】汇编:关于80x86CPU显存的规则

80X86CPU显存存放在B800H:0000-B800H:(160D*25D×2D)即B800H:1F40H之间

遵循着偶数位为 ASCII码 奇数位为 颜色代码的规律 即每两个字节为一个像素

X轴按数学原则(0-159)Y轴与数学原则相反(0-24)

其中 颜色码又遵循 前四位为底色 后四位为字体色 且都是以ARGB的规律排列 (0000 0000B)

以下指令的作用是把welcome to masm!显示至DOS窗口的中间共25行

DATAS SEGMENT
	String db 'welcome to masm!'
	db	00000010B
	db	00100100B
	db	01110001B
	db	00000010B
	db	00100100B
	db	01110001B
	db	00000010B
	db	00100100B
	db	01110001B
	db	00000010B
	db	00100100B
	db	01110001B
	db	00000010B
	db	00100100B
	db	01110001B
	db	00000010B
	db	00100100B
	db	01110001B
	db	00000010B
	db	00100100B
	db	01110001B
	db	00000010B
	db	00100100B
	db	01110001B
DATAS ENDS

STACKS SEGMENT
    DB 128 DUP(0)
STACKS ENDS
;功能:把welcome to masm!用三种不同的颜色显示到二十四行中
;注:dos窗的分辨率为160*25
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
	    	MOV AX,DATAS
	    	MOV DS,AX
	    	MOV SP,128
			MOV CX,24
			MOV DX,0
copyStringOut:
			MOV AX,CX
			MOV BX,24
			SUB BX,AX
			MOV SI,BX
			PUSH CX
			PUSH DX
			MOV CX,16
			MOV AX,0B800H
			MOV ES,AX
			MOV AX,0
			MOV BX,160*0+64
			ADD BX,DX
copyStringIn:
			MOV DI,AX
			MOV DL,DS:[DI]
			ADD DI,DI
			MOV ES:[BX+DI],DL
			MOV DL,DS:[16+SI]
			MOV ES:[BX+DI+1],DL
			INC AX
			loop copyStringIn
			POP DX
			POP CX
			ADD DX,160
			LOOP copyStringOut
    		MOV AH,4CH
    		INT 21H
CODES ENDS
    END START


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值