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