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

📄 300521812711.asm

📁 完成键盘纠错功能。前提是人的手指比标准位置向右错了一位
💻 ASM
字号:
TITLE MASM FIRST		


INCLUDE SmallWin.inc                       

BufferSize = 200                                                      
.data

buffer BYTE BufferSize DUP(?),0,0                                        
string  BYTE  "  `1234567890-=\QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./"    
num1	HANDLE ?                                                       
num2 DWORD ?                                                           
num3 HANDLE ?                                                          
num4 DWORD ?

endl BYTE 0dh,0ah,0


.code
main PROC
L:
	INVOKE GetStdHandle,STD_INPUT_HANDLE                         
	mov num1,eax                                                  
	
	INVOKE ReadConsole,num1,ADDR buffer,BufferSize-2,ADDR num2,0     
	
	mov ecx,num2                                                  
	mov esi,OFFSET buffer                                        
L1:
	mov al,BYTE PTR [esi]                                        
	
	mov edi,OFFSET string                                        

L2:
	inc edi                                                      
	cmp al,BYTE PTR [edi]                                       
	jnz L2                                                        
	dec edi                                                       
	mov al,BYTE PTR [edi]                                        
	mov BYTE PTR [esi],al                                       
	inc esi
	Loop L1


	INVOKE GetStdHandle,STD_OUTPUT_HANDLE
	mov num3,eax
	
	INVOKE WriteConsole,num3,ADDR buffer,num2,ADDR num4,0
	INVOKE WriteConsole,num3,ADDR endl,  2,        ADDR num4,0
        JMP L
	INVOKE ExitProcess,0
	
main ENDP

END main


⌨️ 快捷键说明

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