5.匯編語言--輸入輸出


測試1

.586    
.MODEL flat,stdcall
option casemap:none

; inc 是一個頭文件
include    windows.inc
include user32.inc
include     kernel32.inc
;msvcrt.inc 引用c中的輸入輸出功能
include    msvcrt.inc

;庫文件
includelib user32.lib
includelib kernel32.lib
includelib    msvcrt.lib

.data
tex db "你是個小可愛",0
text db "這是一個標題",0
.code
main proc
;push 入棧 按鈕  0應該是據點的意思
    push 0
;offset 相當於指針,偽指令
    push offset text
;下面是標題
    push offset tex
    push 0
    call MessageBox

;堆棧平衡一下,不懂 傳了4個參數,一個32位 就是16個字節, 測試了不要這一段也可以
    add esp,16
    push 0
    call ExitProcess
    add esp,4

main ENDP
END    main

2.利用msvcrt.inc 里面的字符輸出

.586    
.MODEL flat,stdcall
option casemap:none

; inc 是一個頭文件
include    windows.inc
include user32.inc
include     kernel32.inc
;msvcrt.inc 引用c中的輸入輸出功能
include    msvcrt.inc

;庫文件
includelib user32.lib
includelib kernel32.lib
includelib    msvcrt.lib

.data
tex db "你是個小可愛",0
;text db "這是一個標題",0
.code
main proc
    ; c 語言中打印 printf("%s"變量) crt_printf crt里面的一個功能
    push offset tex
    call crt_printf
    push 0
    call ExitProcess
    add esp,4

main ENDP
END    main

 3.字符的輸入和輸出表示

.586    
.MODEL flat,stdcall
option casemap:none

; inc 是一個頭文件
include  windows.inc
include user32.inc
include kernel32.inc
;msvcrt.inc 引用c中的輸入輸出功能
include  msvcrt.inc

;庫文件
includelib user32.lib
includelib kernel32.lib
includelib msvcrt.lib

.data
text2 db 0
; 用來接收
format db "%s",0

.code
main proc
    push offset text2
    push offset format
    call crt_scanf
    ;因為crt_scanf 需要兩個參數,所以前面push 兩個

    add esp,8
    ; c 語言中打印 printf("%s"變量) crt_printf crt里面的一個功能
    push offset text2
    call crt_printf
    push 0
    call ExitProcess
    add esp,4

main ENDP
END    main

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM