1 TITLE MASM Template (main.asm) 2 3 ; Description: 4 ; 5 ; Revision date: 6 7 .386P ; Pentium Pro or later 8 .MODEL flat, stdcall 9 .STACK 409610 option casemap:none; 大小不敏感11 12 13 printf PROTO C :dword,:vararg14 scanf PROTO C :dword,:vararg15 gets PROTO C :dword16 getchar PROTO C17 strlen PROTO C :dword18 ExitProcess PROTO,dwExitCode:DWORD ; exit program19 exit EQU20 21 INCLUDELIB C:\asm\USER32.LIB22 INCLUDELIB C:\asm\KERNEL32.LIB23 INCLUDELIB C:\asm\MSVCRT.LIB24 25 chr$ MACRO any_text:VARARG26 LOCAL txtname27 .data28 txtname db any_text,029 align 430 .code31 EXITM 32 ENDM33 34 .data35 val1 qword 123456789abcdef0h36 val2 qword 9876543210fedcbah37 s label dword38 sum qword ?39 40 .code41 main PROC42 MOV EAX,dword ptr val1 ;首先计算低8位,进位在cf中43 ADD EAX,dword ptr val244 MOV EDX,dword ptr val1+4 ;然后计算高八位,并且将第八位的进位加上由adc实现 45 ADC EDX,dword ptr val2+4 ;每一字节两个数字,+4就向前进了8位46 MOV dword ptr sum,EAX47 MOV dword ptr sum+4,EDX48 49 invoke printf,chr$("The result is: %llx",0dh,0ah),sum50 invoke getchar51 exit52 main ENDP53 54 END main