⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showbmp.asm

📁 学分管理系统的分析
💻 ASM
字号:
;功能:打开bmp图片
;入口参数:ax--y,bx---x 为图片位置的左下角坐标,dx为文件名指针
;si为显示方式  1-P_COPY,2- P_AND, 3-- P_OR, 4-  P_XOR
;出口参数:无

 include macro.lib
 extern writepoint:far
 public showbmp
 
data segment  public  'data'
  filecode dw 0
  buf db 3*1024 dup(0)
  picwidth dd 0
  x dw 0
  y dw 0
data ends
;===============================================
code segment   'code'
  assume cs:code,ds:data
 .386
;显示bmp图片
showbmp  proc far
      pusha 
      push ds                        ;保护现场
      mov x,bx
      mov y,ax
      
      mov bx,data
      mov ds,bx
      mov ah,3dh
      mov al,0
      int 21h
      jc  exit
      mov filecode,ax               ; 保存文件代号

      readfile filecode, buf, 54
      jnc next 
      closefile filecode             ;读文件失败      
      jmp exit
      
next: lea bx,buf                     ;读文件头信息
      mov eax,18[bx]                 ;文件宽度
      mov picwidth,eax
           
      mov ax,x 
      cwde
      mov ebx,eax                   ;设置起始点
      mov ax,y
      add picwidth,ebx
lopa: push ax
      readfile filecode ,buf,3*1024
      or ax,ax		              ;如果ax为零,则文件已经读完
      jz finish
      xor dx,dx
      mov cx,3
      div cx
      mov cx,ax
      pop ax
      
       lea di,buf
lopb:  RGB 2[di],1[di],0[di]	       ;颜色转换
      
       call writepoint		     ;画一个像素
            
       inc ebx
       cmp ebx,picwidth               ;换行
       jne next1
       dec ax 
       mov bx,x
next1: add di,3			     ;读另一个象素
       loop lopb
       jmp lopa

finish:
       pop ax
      
       closefile filecode
       pop ds                
exit:  popa
       ret   
showbmp  endp

code ends

     END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -