新客网 XKER.COM 2006-10-03 来源:
收藏本文
;画点
_Pixel24TrC proc far
enterw 0,0
push es
push di
mov ax,4f03h
int 10h
pi112: cmp bx,112h
jnz pi115
mov dx,640
jmp write_24t
pi115: cmp bx,115h
jnz pi118
mov dx,800
jmp write_24t
pi118: cmp bx,118h
jnz Tr_exit
mov dx,1024
write_24t: mov ax,0a000h
mov es,ax
mov ax,word ptr [bp+12]
mul dx
mov bx,ax
mov cx,dx
add ax,bx
adc dx,cx
add ax,bx
adc dx,cx
add ax,bx
adc dx,cx
mov bx,word ptr [bp+10]
add bx,word ptr [bp+10]
add bx,word ptr [bp+10]
add bx,word ptr [bp+10]
add ax,bx
adc dx,0
mov di,ax
mov ax,4f05h
mov bx,0
int 10h
mov cx,word ptr [bp+6]
mov word ptr es:[di],cx
add di,2
mov cx,word ptr [bp+8]
mov word ptr es:[di],cx
Tr_exit: pop di
pop es
leavew
ret
_Pixel24TrC endp
_Pixel16HiC proc far
enterw 0,0
push es
push di
mov ax,4f03h
int 10h
pi110: cmp bx,110h
jnz pi111
mov dx,640
jmp write_16h
pi111: cmp bx,111h
jnz pi113
mov dx,640
jmp write_16h
pi113: cmp bx,113h
jnz pi114
mov dx,800
jmp write_16h
pi114: cmp bx,114h
jnz pi116
mov dx,800
jmp write_16h
pi116: cmp bx,116h
jnz pi117
mov dx,1024
jmp write_16h
pi117: cmp bx,117h
jnz Hi_exit
mov dx,1024
write_16h: mov ax,0a000h
mov es,ax
mov ax,word ptr [bp+10]
mul dx
shl ax,1
jc a1
shl dx,1
jmp cont
a1: shl dx,1
inc dx
cont: shl word ptr [bp+8],1
add ax,word ptr [bp+8]
adc dx,0
mov di,ax
mov ax,4f05h
mov bx,0
int 10h
mov cx,word ptr [bp+6]
mov word ptr es:[di],cx
Hi_exit: pop di
pop es
leavew
ret
_Pixel16HiC endp
_Pixel256C proc far
enterw 0,0
push es
push di
mov ax,4f03h
int 10h
pi100: cmp bx,100h
jnz pi101
mov dx,640
jmp write_256
pi101: cmp bx,101h
jnz pi103
mov dx,640
jmp write_256
pi103: cmp bx,103h
jnz pi105
mov dx,800
jmp write_256
pi105: cmp bx,105h
jnz exit_256
mov dx,1024
write_256: mov ax,0a000h
mov es,ax
mov ax,word ptr [bp+10]
mul dx
add ax,word ptr [bp+8]
adc dl,0
mov di,ax
mov ax,4f05h
mov bx,0
int 10h
mov cl,byte ptr [bp+6]
mov byte ptr es:[di],cl
exit_256: pop di
pop es
leavew
ret
_Pixel256C endp
;入口参数: ax=要转换的二进制数
;出口参数 dx:ax=转换十进数
B_O proc near
enterw 5,0
push es
push di
push si
mov bx,10
mov cx,5
mov di,sp
mov ax,ss
mov es,ax
getover: div bx
add dl,30h
mov byte ptr es:[di],dl
dec cx
jz return
inc di
cmp ax,0
jnz getover
mov byte ptr es:[di],dl
return: xor dx,dx
xor ax,ax
std
mov si,di
relod: mov cx,4
lodsb
re: shl dx,1
shl ax,1
jnc d0
inc dx
d0: dec cx
jnz re
cmp si,sp
jnz relod
pop si
pop di
pop es
leavew
ret
B_O endp
_Demo proc far
enterw 0,0
push es
push di
mov ax,0a000h
mov es,ax
mov dx,1024
mov ax,word ptr [bp+12]
mul dx
mov bx,ax
mov cx,dx
add ax,bx
adc dx,cx
add ax,bx
adc dx,cx
add ax,bx
adc dx,cx
mov bx,word ptr [bp+10]
add bx,word ptr [bp+10]
add bx,word ptr [bp+10]
add bx,word ptr [bp+10]
add ax,bx
adc dx,0
; cmp ax,0fffdh
; jnbe exit_Tr
mov di,ax
mov ax,4f05h
mov bx,0
int 10h
mov cx,word ptr [bp+6]
mov word ptr es:[di],cx
add di,2
mov cx,word ptr [bp+8]
mov word ptr es:[di],cx
exit_Tr: pop di
pop es
leavew
ret
_Demo endp
_TEXT ends
_DATA segment use16 byte public 'data'
c@ label byte
db 37
db 63h
db 10
db 0
s@ label byte
db 37
db 73h
db 10
db 0
d@ label byte

发表评论