可移植的256色图形用户界面的设计(1)(2)
2014-07-27 01:34
导读:sub sp,2;WORD Reserved for local var. push ds push es push si push di reserved equ [bp-2];Local var.save seg(DGROUP) x equ [bp 6];Large Model y equ [bp 8] num equ [bp 10] offs equ [bp 12] pseg equ [bp
sub sp,2;WORD Reserved for local var.
push ds
push es
push si
push di
reserved equ [bp-2];Local var.save seg(DGROUP)
x equ [bp 6];Large Model
y equ [bp 8]
num equ [bp 10]
offs equ [bp 12]
pseg equ [bp 14]
mov reserved,ds
mov ds,pseg
mov si,offs ;DS:SI图像数据所在源地址
mov ax,0a000h;显存段址
mov es,ax ;ES:DI显存目的地址
mov ax,y
push ds
mov ds,reserved
mul word ptr DGROUP:-vga-width
pop ds
add ax,x
adc dx,0
mov di,ax ;DI=-vga-width*y x
mov ah,dl ;进位部分(DL)=页号
call dword ptr cs:-PageSelect
mov cx, num ;本行要传送字节数
mov bx, cx
add bx,di ;检测传送是否在一个页内
jnc Dump-In-One-Page
sub cx,bx ;CX=本页字节数,BX=下页字节数
shr cx,1 ;CX/2=字数
rep movsw ;本页内的传送
adc cx,0
rep movsb ;处理可能的奇数字节数
inc ah ;调整页号
call dword ptr cs:-PageSelect
mov cx,bx ;新页内要写的字节数
jcxz Dump-Done
Dump-In-One-Page:
shr cx,1 ;CX/2=字数
rep movsw ;图像传送
adc cx,0
rep movsb ;处理可能的奇数字节数
Dump-Done:
pop di
pop si
pop es
pop ds
mov sp,bp
pop bp
ret
LineDump endp共2页: 1 [2] 下一页 论文出处(作者):
GTK图形编程
在Windows中显示多幅彩色图像的技术