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

📄 99_bmpshow_ref_2.asm

📁 汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂
💻 ASM
字号:
.model small

data segment word PUBLIC 'DATA'
	bmpfilename	BYTE	'D:\test.bmp',0
	file_handle	WORD	?
	color_size	BYTE	16
	palette_buffer	BYTE	64 DUP(?),'$'
	pixel_data_buffer	BYTE	3 DUP(?)
	;temp		WORD	?
	msg_open_err 	BYTE	'Open BMP file error. Please try again!.','$'
	
data ENDS

stack SEGMENT WORD PUBLIC 'STACK'
	DW 100 DUP(0)
STACK ENDS

CODE SEGMent word public 'code'
	assume cs:code,DS:data,ss:stack

main proc far
	mov	ax,data
	mov	ds,ax
;------------------------------------------------------------------
openFile:				;打开bmp文件,保存文件句柄
	lea	dx,bmpfilename
	mov	al,0
	mov	ah,3dh
	INT 	21h
	jc openFileError
	mov	file_handle,ax

	mov	ax,0012h		;设置显示模式640 480  16色VGA
	INT 10H

	mov	bx,file_handle	;移动文件指针到文件头
	mov	dx,36h
	xor	cx,cx
	mov	ax,4200h
	INT 21H

	MOV	AH,3FH
	MOV	DX,OFFSET PIXEL_DATA_BUFFER
	MOV	BX,FILE_HANDLE
	MOV	CX,3
	INT 21H
;----------------------------------------------------------------------
	MOV	AH,02H
	MOV	BH,0
	MOV	DX,0000H
	INT 10H
	
	MOV	AH,10H
	mov	AL,10H
	XOR	BX,BX
	MOV	DH,BYTE PTR PIXEL_DATA_BUFFER+2
	MOV	CH,BYTE PTR PIXEL_DATA_BUFFER+1
	MOV	CL,BYTE PTR PIXEL_DATA_BUFFER
	
	MOV	DX,OFFSET PIXEL_DATA_BUFFER
	INT 10H
	
	
	


	

	
	
openFileError:

	


EXIT:
	mov     ah,00h
	int     16h
	;mov     ax,0003h		;在WINDOWS下不用此结束后会产生花屏
	;int     10h

	mov	ax,4c00h
	INT 21H

main ENDP
	code ENDS
end main

⌨️ 快捷键说明

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