
以下汇编代码用masm5.0和masm6.15都不能编译? 为什么
我是从<汇编语言>王爽学完过来的,现在学<80X86汇编语言与计算机体系结构>,程序框架面目全非到底是怎么回事??该书是用6.1的,但都找不到就直接用6.15啊,masm...
我是从<汇编语言>王爽学完过来的,现在学<80X86汇编语言与计算机体系结构>,程序框架面目全非到底是怎么回事??该书是用6.1的,但都找不到就直接用6.15啊,masm5.0跟masm6.15都不能,masm32也不能,
以下是直接光盘原代码
; Example assembly language program -- adds two numbers; Author: R. Detmer; Date: revised 7/97
.386.MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h ; header file for input/output
cr EQU 0dh ; carriage return characterLf EQU 0ah ; line feed
.STACK 4096 ; reserve 4096-byte stack
.DATA ; reserve storage for datanumber1 DWORD ?number2 DWORD ?prompt1 BYTE "Enter first number: ", 0prompt2 BYTE "Enter second number: ", 0string BYTE 40 DUP (?)label1 BYTE cr, Lf, "The sum is "sum BYTE 11 DUP (?) BYTE cr, Lf, 0
.CODE ; start of main program code_start: output prompt1 ; prompt for first number input string, 40 ; read ASCII characters atod string ; convert to integer mov number1, eax ; store in memory
output prompt2 ; repeat for second number input string, 40 atod string mov number2, eax mov eax, number1 ; first number to EAX add eax, number2 ; add second number dtoa sum, eax ; convert to ASCII characters output label1 ; output label and sum
INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start ; make entry point public
END ; end of source code 展开
以下是直接光盘原代码
; Example assembly language program -- adds two numbers; Author: R. Detmer; Date: revised 7/97
.386.MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h ; header file for input/output
cr EQU 0dh ; carriage return characterLf EQU 0ah ; line feed
.STACK 4096 ; reserve 4096-byte stack
.DATA ; reserve storage for datanumber1 DWORD ?number2 DWORD ?prompt1 BYTE "Enter first number: ", 0prompt2 BYTE "Enter second number: ", 0string BYTE 40 DUP (?)label1 BYTE cr, Lf, "The sum is "sum BYTE 11 DUP (?) BYTE cr, Lf, 0
.CODE ; start of main program code_start: output prompt1 ; prompt for first number input string, 40 ; read ASCII characters atod string ; convert to integer mov number1, eax ; store in memory
output prompt2 ; repeat for second number input string, 40 atod string mov number2, eax mov eax, number1 ; first number to EAX add eax, number2 ; add second number dtoa sum, eax ; convert to ASCII characters output label1 ; output label and sum
INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start ; make entry point public
END ; end of source code 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询