sdsfdsdqq
sdsfdsdqq
采纳率0%
2020-06-07 17:16

nasm版window的helloworld怎么写?

网上有linux版的
没有windows版,我照着masm改了下,不会改
应该怎么写

section    .text
    global _start       ;must be declared for using gcc

_start:                     ;tell linker entry point
;linux
    ;mov    edx, len    ;message length
    ;mov    ecx, msg    ;message to write
    ;mov    ebx, 1        ;file descriptor (stdout)
    ;mov    eax, 4        ;system call number (sys_write)
    ;int    0x80        ;call kernel
    ;mov    eax, 1        ;system call number (sys_exit)
    ;int    0x80        ;call kernel
;windows
    mov ax,data
    mov ds,ax
    lea dx,msgwin
    mov ah,9
    int 0x21

    mov ah,4ch
    int 0x21

section    .data
msg    db    'Hello, world!',0xa    ;our dear string
len    equ    $ - msg            ;length of our dear string

msgwin db 'Hello World',10,13,'$'
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 1年前

    windows版,可以用masm32

    .386
            .model flat ,stdcall
    
    NULL    equ 0
    MB_OK   equ 0
    
    ExitProcess PROTO :DWORD
    MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
    
    includelib kernel32.lib
    includelib user32.lib
    
              .data
    szText    db "Hello, world!",0
    szCaption db "Win32Asm",0
    
            .code 
    start: 
            push MB_OK
            lea eax,szCaption
            push eax
            lea eax,szText
            push eax
            push NULL
            call messageboxa
            xor eax,eax
            push eax
            call exitprocess
            end start
    
    
    点赞 评论 复制链接分享

相关推荐