blitbit.asm

来自「开放源码的编译器open watcom 1.6.0版的源代码」· 汇编 代码 · 共 3,447 行 · 第 1/4 页

ASM
3,447
字号

;-------------------------------------------------------------------------
;
;Blit a bitmap in 256 colour mode.
;
;On Entry:
;
;EBX	- state, 0=broken, !=0=clean.
;ECX	- width.
;EDX	- depth.
;ESI	- source.
;EDI	- destination.
;EBP	- Bitmap (BM) header.
;
vPutORBitmap256 proc	near
	push	edx
	mov	eax,BM_Wide[ebp]
	mul	BM_PWide[ebp]
	pop	edx
	mov	ebp,BM_Flags[ebp]
	xchg	ebp,eax
	and	eax,15
	jz	@@256
	dec	eax
	jz	@@32k
	dec	eax
	jz	@@64k
	dec	eax
	jz	@@16m
	jmp	@@9
;
;256 colour bitmap.
;
@@256:	or	ebx,ebx
	jz	@@b256
	sub	edi,d[CurrentBankBig]
@@256_0:	pushm	ecx,esi,edi
@@256_1:	lodsb
	cmp	al,b[_VBB_Chroma]
	jz	@@256_3
	stosb
@@256_2:	dec	ecx
	jnz	@@256_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@256_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@256_3:	inc	edi
	jmp	@@256_2
;
@@b256:	pushm	ecx,esi,edi
@@b256_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsb
	cmp	al,b[_VBB_Chroma]
	jz	@@b256_3
	stosb
@@b256_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b256_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b256_3:	inc	edi
	jmp	@@b256_2
;
;32k colour bitmap.
;
@@32k:	or	ebx,ebx
	jz	@@b32k
	sub	edi,d[CurrentBankBig]
@@32k_0:	pushm	ecx,esi,edi
@@32k_1:	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@32k_3
	mov	ebx,eax
	shl	ebx,16+1
	shld	eax,ebx,5
	shl	eax,3
	shl	ebx,5
	shld	eax,ebx,5
	shl	eax,3
	shl	ebx,5
	shld	eax,ebx,5
	shl	eax,3
;	call	SearchRGB
	stosb
@@32k_2:	dec	ecx
	jnz	@@32k_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@32k_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@32k_3:	inc	edi
	jmp	@@32k_2
;
@@b32k:	pushm	ecx,esi,edi
@@b32k_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@b32k_3
	add	edi,d[CurrentBankBig]
	mov	ebx,eax
	shl	ebx,16+1
	shld	eax,ebx,5
	shl	eax,3
	shl	ebx,5
	shld	eax,ebx,5
	shl	eax,3
	shl	ebx,5
	shld	eax,ebx,5
	shl	eax,3
;	call	SearchRGB
	stosb
@@b32k_2:	dec	ecx
	jnz	@@b32k_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b32k_3:	inc	edi
	jmp	@@b32k_2
;
;64k colour bitmap.
;
@@64k:	or	ebx,ebx
	jz	@@b64k
	sub	edi,d[CurrentBankBig]
@@64k_0:	pushm	ecx,esi,edi
@@64k_1:	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@64k_3
	mov	ebx,eax
	shl	ebx,16
	shld	eax,ebx,5
	shl	eax,3
	shl	ebx,5
	shld	eax,ebx,6
	shl	eax,2
	shl	ebx,6
	shld	eax,ebx,5
	shl	eax,3
;	call	SearchRGB
	stosb
@@64k_2:	dec	ecx
	jnz	@@64k_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@64k_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@64k_3:	inc	edi
	jmp	@@64k_2
;
@@b64k:	pushm	ecx,esi,edi
@@b64k_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@b64k_3
	add	edi,d[CurrentBankBig]
	mov	ebx,eax
	shl	ebx,16
	shld	eax,ebx,5
	shl	eax,3
	shl	ebx,5
	shld	eax,ebx,6
	shl	eax,2
	shl	ebx,6
	shld	eax,ebx,5
	shl	eax,3
;	call	SearchRGB
	stosb
@@b64k_2:	dec	ecx
	jnz	@@b64k_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b64k_3:	inc	edi
	jmp	@@b64k_2
;
;16m colour bitmap.
;
@@16m:	or	ebx,ebx
	jz	@@b16m
	sub	edi,d[CurrentBankBig]
@@16m_0:	pushm	ecx,esi,edi
@@16m_1:	lodsd
	dec	esi
	and	eax,0ffffffh
	cmp	eax,d[_VBB_Chroma]
	jz	@@16m_3
;	call	SearchRGB
	stosb
@@16m_2:	dec	ecx
	jnz	@@16m_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@16m_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@16m_3:	inc	edi
	jmp	@@16m_2
;
@@b16m:	pushm	ecx,esi,edi
@@b16m_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsd
	dec	esi
	and	eax,0ffffffh
	cmp	eax,d[_VBB_Chroma]
	jz	@@b16m_3
;	call	SearchRGB
	stosb
@@b16m_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b16m_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b16m_3:	inc	edi
	jmp	@@b16m_2
;
@@9:	ret
vPutORBitmap256 endp


;-------------------------------------------------------------------------
;
;Blit a bitmap in 32k colour mode.
;
;On Entry:
;
;EBX	- state, 0=broken, !=0=clean.
;ECX	- width.
;EDX	- depth.
;ESI	- source.
;EDI	- destination.
;EBP	- Bitmap (BM) header.
;
vPutORBitmap32k proc	near
	push	edx
	mov	eax,BM_Wide[ebp]
	mul	BM_PWide[ebp]
	pop	edx
	mov	ebp,BM_Flags[ebp]
	xchg	ebp,eax
	and	eax,15
	jz	@@256
	dec	eax
	jz	@@32k
	dec	eax
	jz	@@64k
	dec	eax
	jz	@@16m
	jmp	@@9
;
;256 colour bitmap.
;
@@256:	or	ebx,ebx
	jz	@@b256
	sub	edi,d[CurrentBankBig]
@@256_0:	pushm	ecx,esi,edi
@@256_1:	xor	eax,eax
	lodsb
	cmp	al,b[_VBB_Chroma]
	jz	@@256_3
	mov	eax,d[HardwarePalette+eax+eax*2]
	mov	bl,al
	shr	eax,8
	xchg	ah,bl
	shl	eax,8
	mov	al,bl
	mov	ebx,eax
	shl	ebx,2+8		;Convert 0-63 value to 0-255 value.
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@256_2:	dec	ecx
	jnz	@@256_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@256_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@256_3:	add	edi,2
	jmp	@@256_2
;
@@b256:	pushm	ecx,esi,edi
@@b256_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	xor	eax,eax
	lodsb
	cmp	al,b[_VBB_Chroma]
	jz	@@b256_3
	mov	eax,d[HardwarePalette+eax+eax*2]
	mov	bl,al
	shr	eax,8
	xchg	ah,bl
	shl	eax,8
	mov	al,bl
	mov	ebx,eax
	shl	ebx,2+8		;Convert 0-63 value to 0-255 value.
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@b256_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b256_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b256_3:	add	edi,2
	jmp	@@b256_2
;
;32k colour version.
;
@@32k:	or	ebx,ebx
	jz	@@b32k
	sub	edi,d[CurrentBankBig]
@@32k_0:	pushm	ecx,esi,edi
@@32k_1:	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@32k_3
	stosw
@@32k_2:	dec	ecx
	jnz	@@32k_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@32k_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@32k_3:	add	edi,2
	jmp	@@32k_2
;
@@b32k:	pushm	ecx,esi,edi
@@b32k_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@b32k_3
	stosw
@@b32k_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b32k_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b32k_3:	add	edi,2
	jmp	@@b32k_2
;
;64k colour version.
;
@@64k:	or	ebx,ebx
	jz	@@b64k
	sub	edi,d[CurrentBankBig]
@@64k_0:	pushm	ecx,esi,edi
@@64k_1:	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@64k_3
	movzx	ebx,ax
	xor	eax,eax
	shl	ebx,16
	shld	eax,ebx,5
	shl	ebx,5
	shld	eax,ebx,5
	shl	ebx,6
	shld	eax,ebx,5
	stosw
@@64k_2:	dec	ecx
	jnz	@@64k_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@64k_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@64k_3:	add	edi,2
	jmp	@@64k_2
;
@@b64k:	pushm	ecx,esi,edi
@@b64k_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@b64k_3
	movzx	ebx,ax
	xor	eax,eax
	shl	ebx,16
	shld	eax,ebx,5
	shl	ebx,5
	shld	eax,ebx,5
	shl	ebx,6
	shld	eax,ebx,5
	stosw
@@b64k_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b64k_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b64k_3:	add	edi,2
	jmp	@@b64k_2
;
;16m colour version.
;
@@16m:	or	ebx,ebx
	jz	@@b16m
	sub	edi,d[CurrentBankBig]
@@16m_0:	pushm	ecx,esi,edi
@@16m_1:	lodsd
	dec	esi
	and	eax,0ffffffh
	cmp	eax,d[_VBB_Chroma]
	jz	@@16m_3
	shl	eax,8
	mov	ebx,eax
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@16m_2:	dec	ecx
	jnz	@@16m_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@16m_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@16m_3:	add	edi,2
	jmp	@@16m_2
;
@@b16m:	pushm	ecx,esi,edi
@@b16m_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsd
	dec	esi
	and	eax,0ffffffh
	cmp	eax,d[_VBB_Chroma]
	jz	@@b16m_3
	shl	eax,8
	mov	ebx,eax
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@b16m_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b16m_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b16m_3:	add	edi,2
	jmp	@@b16m_2
;
@@9:	ret
vPutORBitmap32k endp


;-------------------------------------------------------------------------
;
;Blit a bitmap in 256 colour mode.
;
;On Entry:
;
;EBX	- state, 0=broken, !=0=clean.
;ECX	- width.
;EDX	- depth.
;ESI	- source.
;EDI	- destination.
;EBP	- Bitmap (BM) header.
;
vPutORBitmap64k proc	near
	push	edx
	mov	eax,BM_Wide[ebp]
	mul	BM_PWide[ebp]
	pop	edx
	mov	ebp,BM_Flags[ebp]
	xchg	ebp,eax
	and	eax,15
	jz	@@256
	dec	eax
	jz	@@32k
	dec	eax
	jz	@@64k
	dec	eax
	jz	@@16m
	jmp	@@9
;
;256 colour bitmap.
;
@@256:	or	ebx,ebx
	jz	@@b256
	sub	edi,d[CurrentBankBig]
@@256_0:	pushm	ecx,esi,edi
@@256_1:	xor	eax,eax
	lodsb
	cmp	al,b[_VBB_Chroma]
	jz	@@256_3
	mov	eax,d[HardwarePalette+eax+eax*2]
	shl	eax,2
	mov	bl,al
	shr	eax,8
	xchg	ah,bl
	shl	eax,8
	mov	al,bl
	mov	ebx,eax
	shl	ebx,8
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,6
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@256_2:	dec	ecx
	jnz	@@256_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@256_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@256_3:	add	edi,2
	jmp	@@256_2
;
@@b256:	pushm	ecx,esi,edi
@@b256_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	xor	eax,eax
	lodsb
	cmp	al,b[_VBB_Chroma]
	jz	@@b256_3
	mov	eax,d[HardwarePalette+eax+eax*2]
	shl	eax,2
	mov	bl,al
	shr	eax,8
	xchg	ah,bl
	shl	eax,8
	mov	al,bl
	mov	ebx,eax
	shl	ebx,8
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,6
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@b256_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b256_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b256_3:	add	edi,2
	jmp	@@b256_2
;
;32k colour version.
;
@@32k:	or	ebx,ebx
	jz	@@b32k
	sub	edi,d[CurrentBankBig]
@@32k_0:	pushm	ecx,esi,edi
@@32k_1:	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@32k_3
	movzx	ebx,ax
	xor	eax,eax
	shl	ebx,16+1
	shld	eax,ebx,5
	shl	ebx,5
	shld	eax,ebx,5
	shl	eax,1
	shl	ebx,5
	shld	eax,ebx,5
	stosw
@@32k_2:	dec	ecx
	jnz	@@32k_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@32k_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@32k_3:	add	edi,2
	jmp	@@32k_2
;
@@b32k:	pushm	ecx,esi,edi
@@b32k_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@b32k_3
	movzx	ebx,ax
	xor	eax,eax
	shl	ebx,16+1
	shld	eax,ebx,5
	shl	ebx,5
	shld	eax,ebx,5
	shl	eax,1
	shl	ebx,5
	shld	eax,ebx,5
	stosw
@@b32k_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b32k_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b32k_3:	add	edi,2
	jmp	@@b32k_2
;
;64k colour version.
;
@@64k:	or	ebx,ebx
	jz	@@b64k
	sub	edi,d[CurrentBankBig]
@@64k_0:	pushm	ecx,esi,edi
@@64k_1:	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@64k_3
	stosw
@@64k_2:	dec	ecx
	jnz	@@64k_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@64k_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@64k_3:	add	edi,2
	jmp	@@64k_2
;
@@b64k:	pushm	ecx,esi,edi
@@b64k_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@b64k_3
	stosw
@@b64k_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b64k_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b64k_3:	add	edi,2
	jmp	@@b64k_2
;
;16m colour version.
;
@@16m:	or	ebx,ebx
	jz	@@b16m
	sub	edi,d[CurrentBankBig]
@@16m_0:	pushm	ecx,esi,edi
@@16m_1:	lodsd
	dec	esi
	and	eax,0ffffffh
	cmp	eax,d[_VBB_Chroma]
	jz	@@16m_3
	shl	eax,8
	mov	ebx,eax
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,6
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@16m_2:	dec	ecx
	jnz	@@16m_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@16m_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@16m_3:	add	edi,2
	jmp	@@16m_2
;
@@b16m:	pushm	ecx,esi,edi
@@b16m_0:	bank	edi
	sub	edi,d[CurrentBankBig]
	lodsd
	dec	esi
	and	eax,0ffffffh
	cmp	eax,d[_VBB_Chroma]
	jz	@@b16m_3
	shl	eax,8
	mov	ebx,eax
	xor	eax,eax
	shld	eax,ebx,5
	shl	ebx,8
	shld	eax,ebx,6
	shl	ebx,8
	shld	eax,ebx,5
	stosw
@@b16m_2:	add	edi,d[CurrentBankBig]
	dec	ecx
	jnz	@@b16m_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b16m_3:	add	edi,2
	jmp	@@b16m_2
;
@@9:	ret
vPutORBitmap64k endp


;-------------------------------------------------------------------------
;
;Blit a bitmap in 256 colour mode.
;
;On Entry:
;
;EBX	- state, 0=broken, !=0=clean.
;ECX	- width.
;EDX	- depth.
;ESI	- source.
;EDI	- destination.
;EBP	- Bitmap (BM) header.
;
vPutORBitmap16m proc	near
	push	edx
	mov	eax,BM_Wide[ebp]
	mul	BM_PWide[ebp]
	pop	edx
	mov	ebp,BM_Flags[ebp]
	xchg	ebp,eax
	and	eax,15
	jz	@@256
	dec	eax
	jz	@@32k
	dec	eax
	jz	@@64k
	dec	eax
	jz	@@16m
	jmp	@@9
;
;256 colour bitmap.
;
@@256:	or	ebx,ebx
	jz	@@b256
	sub	edi,d[CurrentBankBig]
@@256_0:	pushm	ecx,esi,edi
@@256_1:	lodsb
	movzx	eax,al
	cmp	al,b[_VBB_Chroma]
	jz	@@256_3
	mov	eax,d[HardwarePalette+eax][eax*2]
	shl	eax,2
	mov	bl,al
	shr	eax,8
	xchg	ah,bl
	shl	eax,8
	mov	al,bl
	stosw
	shr	eax,16
	stosb
@@256_2:	dec	ecx
	jnz	@@256_1
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	dec	edx
	jnz	@@256_0
	add	edi,d[CurrentBankBig]
	jmp	@@9
@@256_3:	add	edi,3
	jmp	@@256_2
;
@@b256:	pushm	ecx,esi,edi
@@b256_0:	lodsb
	cmp	al,b[_VBB_Chroma]
	jz	@@b256_3
	movzx	eax,al
	mov	eax,d[HardwarePalette+eax][eax*2]
	shl	eax,2
	mov	bl,al
	shr	eax,8
	xchg	ah,bl
	shl	eax,8
	mov	al,bl
	mov	bl,3
@@b256_4:	bank	edi
	sub	edi,d[CurrentBankBig]
	stosb
	shr	eax,8
	add	edi,d[CurrentBankBig]
	dec	bl
	jnz	@@b256_4
@@b256_2:	dec	ecx
	jnz	@@b256_0
	popm	ecx,esi,edi
	add	esi,ebp
	add	edi,VideoHardwareWidth
	jmp	@@9
@@b256_3:	add	edi,3
	jmp	@@b256_2
;
;32k colour bitmap.
;
@@32k:	or	ebx,ebx
	jz	@@b32k
	sub	edi,d[CurrentBankBig]
@@32k_0:	pushm	ecx,esi,edi
@@32k_1:	lodsw
	cmp	ax,w[_VBB_Chroma]
	jz	@@32k_3
	movzx	ebx,ax
	shl	ebx,1+16
	xor	eax,eax
	shld	eax,ebx,5
	shl	eax,3

⌨️ 快捷键说明

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