澳洲在线新闻网:熟悉Masm汇编代码编写的人进来帮帮我

来源:百度文库 编辑:高考问答 时间:2024/04/27 19:49:52
可能是比较菜的问题,看下面代码:
.386
.model flat,stdcall
option casemap:none
includelib msvcrt.lib
printf PROTO C:ptr sbyte,:vararg
.data
szMsg byte "hehehrehe",0ah,0
.code
start:
invoke printf,offset szMsg
ret
end start

代码完,我的问题:
1、includelib msvcrt.lib 这一行,这个msvcrt.lib文件我在Masm8/6(8或6)的文件目录下,都没找到这个文件,还是在VS.NET文件目录下找到的,我想问一下,汇编文件里的这个文件和.NET里的应该是一样的吧?(可以编译连接)

2、我打开command,执行被编译的以上代码,竟然什么也没有出现在控制台窗口里,因为以上代码的执行文件的效果应该和C++/C的printf效果相同才是,为什么什么也没输出?应该不用像C console一样有时候要用getch()停止画面,因为是直接输出在command.exe窗口内的~不是吗

另外,有另一段代码:
.MODEL SMALL
.DATA
S1 DB "ABCDEFG$"
X1 DW 123
X2 DD 0
.CODE
.STARTUP
MOV BX,TYPE S1
MOV AX,TYPE X1
MOV CX,TYPE X2
.EXIT 0
END

这段代码有本书上说用MASM611编译连接,或用ML.exe编译连接,但是我用MASM8/6自动编译却出来一连串编译错误,而用ML.EXE却只得到了obj文件。
为什么?

这段代码有本书上说用MASM611编译连接,或用ML.exe编译连接,但是我用MASM8/6自动编译却出来一连串编译错误,而用ML.EXE却只得到了obj文件。