1.masm32-输出到控制台

代码:

    .386
        .model flat,stdcall
        option casemap:none

include windows.inc

include kernel32.inc
include user32.inc

includelib kernel32.lib
includelib user32.lib

        .data
msg    db 'hello  hgy413',0    ;要显示的信息

        .data?
stdout  dd ?    ;存放标准输出的把柄
charout dd ?    ;记录实际输出的字符数

        .code
start:  
        push STD_OUTPUT_HANDLE
        call GetStdHandle;获取标准输出的把柄
        mov stdout,eax      ;保存句柄号

        lea eax,msg
        push eax
        call lstrlen;求字符串的长度

        lea ecx,charout
        lea edx,msg
        push NULL
        push ecx
        push eax
        push edx
        push stdout

        call WriteFile
               
        invoke ExitProcess,NULL   ;程序结束
        end start

编译运行:

F:\MASM>ml /c /coff 3.asm
Microsoft (R) Macro Assembler Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

 Assembling: 3.asm

***********
ASCII build
***********


F:\MASM>link /subsystem:console 3.obj
Microsoft (R) Incremental Linker Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.


F:\MASM>3.exe
hello  hgy413
F:\MASM>





猜你喜欢

转载自blog.csdn.net/hgy413/article/details/72869625
今日推荐