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

📄 vputc.cod

📁 汇编源代码大全4
💻 COD
字号:
;	Static Name Aliases
;
	TITLE   vputc
;	NAME    vputc.C

	.287
_TEXT	SEGMENT  BYTE PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT  WORD PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT  WORD PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT  WORD PUBLIC 'BSS'
_BSS	ENDS
DGROUP	GROUP	CONST,	_BSS,	_DATA
	ASSUME  CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
EXTRN	_vidmode:NEAR
EXTRN	_inp:NEAR
EXTRN	__chkstk:NEAR
_TEXT      SEGMENT
; Line 6
	PUBLIC	_vputc
_vputc	PROC NEAR
	*** 000000	55 			push	bp
	*** 000001	8b ec 			mov	bp,sp
	*** 000003	b8 06 00 		mov	ax,6
	*** 000006	e8 00 00 		call	__chkstk
	*** 000009	56 			push	si
; Line 7
;	row = 4
;	col = 6
;	chr = 8
;	attr = 10
;	retrace = 12
;	register si = c
;	scr_ofs = -6
; Line 11
	*** 00000a	e8 00 00 		call	_vidmode
	*** 00000d	3d 07 00 		cmp	ax,7
	*** 000010	75 24 			jne	$I18
; Line 12
; Line 13
	*** 000012	80 4e 0a 07 		or	BYTE PTR [bp+10],7	;attr
; Line 14
	*** 000016	b8 a0 00 		mov	ax,160
	*** 000019	f7 6e 04 		imul	WORD PTR [bp+4]	;row
	*** 00001c	8b 4e 06 		mov	cx,[bp+6]	;col
	*** 00001f	d1 e1 			shl	cx,1
	*** 000021	03 c1 			add	ax,cx
	*** 000023	80 c4 00 		add	ah,0
	*** 000026	ba 00 b0 		mov	dx,-20480
	*** 000029	89 46 fa 		mov	[bp-6],ax	;scr_ofs
	*** 00002c	89 56 fc 		mov	[bp-4],dx
; Line 15
	*** 00002f	c7 46 0c 00 00 		mov	WORD PTR [bp+12],0	;retrace
; Line 16
; Line 17
	*** 000034	eb 25 			jmp	SHORT $I19
					$I18:
; Line 18
; Line 19
	*** 000036	e8 00 00 		call	_vidmode
	*** 000039	3d 02 00 		cmp	ax,2
	*** 00003c	75 04 			jne	$I20
; Line 20
	*** 00003e	80 4e 0a 07 		or	BYTE PTR [bp+10],7	;attr
; Line 21
					$I20:
	*** 000042	b8 a0 00 		mov	ax,160
	*** 000045	f7 6e 04 		imul	WORD PTR [bp+4]	;row
	*** 000048	8b 4e 06 		mov	cx,[bp+6]	;col
	*** 00004b	d1 e1 			shl	cx,1
	*** 00004d	03 c1 			add	ax,cx
	*** 00004f	80 c4 00 		add	ah,0
	*** 000052	ba 00 b8 		mov	dx,-18432
	*** 000055	89 46 fa 		mov	[bp-6],ax	;scr_ofs
	*** 000058	89 56 fc 		mov	[bp-4],dx
; Line 22
					$I19:
; Line 24
	*** 00005b	8b 76 0a 		mov	si,[bp+10]	;attr
	*** 00005e	b1 08 			mov	cl,8
	*** 000060	d3 e6 			shl	si,cl
	*** 000062	0b 76 08 		or	si,[bp+8]	;chr
; Line 26
	*** 000065	83 7e 0c 00 		cmp	WORD PTR [bp+12],0	;retrace
	*** 000069	74 1c 			je	$I21
; Line 27
; Line 28
					$WC23:
	*** 00006b	b8 da 03 		mov	ax,986
	*** 00006e	50 			push	ax
	*** 00006f	e8 00 00 		call	_inp
	*** 000072	83 c4 02 		add	sp,2
	*** 000075	a8 01 			test	al,1
	*** 000077	75 f2 			jne	$WC23
; Line 29
					$WC25:
	*** 000079	b8 da 03 		mov	ax,986
	*** 00007c	50 			push	ax
	*** 00007d	e8 00 00 		call	_inp
	*** 000080	83 c4 02 		add	sp,2
	*** 000083	a8 01 			test	al,1
	*** 000085	74 f2 			je	$WC25
; Line 30
; Line 32
					$I21:
	*** 000087	c4 5e fa 		les	bx,[bp-6]	;scr_ofs
	*** 00008a	26 89 37 		mov	es:[bx],si
; Line 33
	*** 00008d	5e 			pop	si
	*** 00008e	8b e5 			mov	sp,bp
	*** 000090	5d 			pop	bp
	*** 000091	c3 			ret	

_vputc	ENDP
_TEXT	ENDS
END

⌨️ 快捷键说明

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