console.asm
来自「windows下汇编语言 学习汇编语言好助手」· 汇编 代码 · 共 52 行
ASM
52 行
;*********************************
;文件:Console.asm *
;功能:演示控制台应用程序的编写 *
;*********************************
.386p
.model flat,stdcall ;平坦内存模式
NULL = 0 ;常量定义
MB_OK = 0
GENERIC_READ equ 80000000H
GENERIC_WRITE equ 40000000H
FILE_SHARE_READ equ 00000001H
FILE_SHARE_WRITE equ 00000002H
CONSOLE_TEXTMODE_BUFFER equ 1
INVALID_HANDLE_VALUE equ -1
extrn WriteConsoleA:proc ;外部过程声明
extrn SetConsoleTitleA:proc
extrn CreateConsoleScreenBuffer:proc
extrn CloseHandle:proc
extrn SetConsoleActiveScreenBuffer:proc
extrn MessageBoxA:proc
extrn ExitProcess:proc ;
.data
Caption db 'Hello World!',0
Text db '欢迎来到Win32汇编的世界',0
ErrText db 'Error',0
align 4
Written dd ?
hCS dd ?
.code
main:
call SetConsoleTitleA ,offset Caption ;改变窗口标题
;建立控制台的screen buffer
call CreateConsoleScreenBuffer,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CONSOLE_TEXTMODE_BUFFER,NULL
cmp eax,INVALID_HANDLE_VALUE ;建立失败?
jz Error
mov [hCS],eax
call SetConsoleActiveScreenBuffer,eax ;设置有效的制台screen buffer
;写控制台
call WriteConsoleA,[hCS],offset Text,offset ErrText - offset Text,offset Written,NULL
call CloseHandle,[hCS] ;关闭句柄
call ExitProcess,0
Error:
call MessageBoxA,NULL,offset ErrText,offset Caption,MB_OK
call ExitProcess,1
end main
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?