foxprn
foxprn
;sptp.asm
;此程序為foxbase的一個圖形函數
;使用LQ 1600K 作圖形打印
;圖形格式:Super Star.
;將SPT圖形先左右翻轉,再旋轉90度,最后反白顯示,即可打出正常的圖形
.model tiny
.code
??????? org 00h
start:
??????? jmp bg
file??? db 50 dup(0)
wth???? dw 0
lenth?? dw 0
handle? dw 0
mdv???? db 0
hdv???? db 0
npos??? dw 0
buff??? db 3 dup(0)
bg:
_cts proc far
??????? push cs
??????? pop es
??????? mov si,bx
??????? lea di,file
??????? mov cx,50
??????? cld
??????? repz movsb
;從Foxbase環境的with 參
;數中得到文件名
??????? xor si,si
??????? push cs
??????? pop ds
??????? mov ah,3dh
??????? mov al,0;只讀
??????? lea dx,file
??????? int 21h;打開文件
??????? mov handle,ax
??????? ;保存文件句柄
??????? mov ah,42h
??????? mov al,0
??????? mov bx,handle
??????? xor cx,cx
??????? mov dx,22h
??????? int 21h
??????? ;設置當前文件位置
??????? mov ah,3fh
??????? mov bx,handle
??????? mov cx,2
??????? lea dx,wth
??????? int 21h
??????? ;讀入圖形的寬度
??????? mov ah,42h
??????? mov al,0
??????? mov bx,handle
??????? xor cx,cx
??????? mov dx,24h
??????? int 21h
??????? ;設置當前文件位置
??????? mov ah,3fh
??????? mov bx,handle
??????? mov cx,2
??????? lea dx,lenth
??????? int 21h
??????? ;讀入圖形的高度
??????? mov ah,42h
??????? mov al,0
??????? mov bx,handle
??????? xor cx,cx
??????? mov dx,40h
??????? int 21h
??????? ;設置當前文件位置
??????? xor dx,dx
??????? mov ax,lenth
??????? mov bx,256
??????? div bx
??????? mov mdv,dl;余數
??????? mov hdv,al;商
??????? xor dx,dx
??????? mov ax,wth
??????? mov bx,8
??????? div bx
??????? sub ax,3
??????? mov npos,ax;商
??????? mov ah,1
??????? xor dx,dx
??????? int 17h
print_bytes:
??????? xor dx,dx
??????? mov ax,wth
??????? mov bx,24
??????? div bx
??????? mov bp,ax;行數
rpt:
??????? mov bx,lenth;列數
??????? mov ah,0
??????? ;調用DOS的打印功能
??????? mov al,1bh;換碼代碼
??????? xor dx,dx
??????? int 17h
??????? ;發送這個碼
??????? xor ah,ah
??????? mov al,2ah
??????? ;圖形方式碼
??????? int 17h
??????? xor ah,ah
??????? mov al,39
??????? ;設定三倍密度24針
??????? int 17h
??????? xor ah,ah
??????? mov al,mdv;列數(余數)
??????? int 17h
??????? xor ah,ah
??????? mov al,hdv;(商)
??????? int 17h
pt:
??????? push bx
??????? mov ah,3fh
??????? mov bx,handle
??????? mov cx,3
??????? lea dx,buff
??????? ;讀入三個字節的內容
??????? int 21h
??????? mov ah,42h
??????? mov al,1
??????? mov bx,handle
??????? xor cx,cx
??????? mov dx,npos
??????? int 21h
??????? ;設置新位置
??????? mov ah,0
??????? mov al,buff
??????? xor dx,dx
??????? int 17h
??????? xor ah,ah
??????? mov al,buff+1
??????? int 17h
??????? xor ah,ah
??????? mov al,buff+2
??????? int 17h
??????? pop bx
??????? dec bx
??????? jnz pt
??????? xor ah,ah
??????? mov al,1bh
??????? int 17h
??????? xor ah,ah
??????? mov al,4ah
??????? int 17h
??????? xor ah,ah
??????? mov al,24
??????? int 17h;換行
??????? xor ah,ah
??????? mov al,13
??????? int 17h;回車
??????? mov ah,42h
??????? mov al,0
??????? mov bx,handle
??????? xor cx,cx
??????? mov dx,40h
??????? add si,3
??????? add dx,si
??????? int 21h
??????? ;設置當前文件位置
??????? dec bp
??????? jz cont2
??????? jmp far ptr rpt
cont2:
??????? mov ah,3eh
??????? mov bx,handle
??????? int 21h;關閉文件
??????? ret
_cts endp
ends
end start
非常好我支持^.^
(1) 100%
不好我反對
(0) 0%
下載地址
foxprn下載
相關電子資料下載
- pic單片機匯編程序實例 297
- 匯編指令是什么 計算機語言匯編指令簡介 130
- 匯編代碼是什么意思 121
- u-boot在匯編啟動階段的相關操作介紹 127
- 什么是C語言?單片機有什么特點?為什么要用C語言編程? 320
- 一文認識ARM匯編指令和體系架構 412
- C程序的完整編譯過程 324
- KEIL軟件的詳細分析 213
- armasm編譯匯編代碼鏈接失敗的問題分析 184
- 看完這篇文章,匯編也不難 325