1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| ;entry.asm include entry.inc
.code printText proc String:dword mov eax,String push eax mov eax,offset szFormats push eax call printf add esp,8 ret printText endp
printNumber proc Number:dword mov eax,Number push eax mov eax,offset szFormatd push eax call printf add esp,8 ret printNumber endp
scanfNumber proc Number:dword mov eax,Number push eax mov eax,offset szFormatd push eax call scanf add esp,8 ret scanfNumber endp
scanfByte proc mov eax,offset nChar push eax mov eax,offset szFormatc push eax call scanf add esp,8 ret scanfByte endp
radd proc num1:dword,num2:dword xor eax,eax add eax,num1 add eax,num2 ret radd endp
rsub proc num1:dword,num2:dword xor eax,eax add eax,num1 add eax,num2 ret rsub endp
main proc invoke printText,offset szText1 invoke scanfNumber,offset dwNumber1 call getchar invoke printText,offset szText2 invoke scanfByte invoke printText,offset szText1 invoke scanfNumber,offset dwNumber2 .if nChar =='+' invoke radd,dwNumber1,dwNumber2 invoke printNumber,eax .elseif nChar == '-' invoke rsub,dwNumber1,dwNumber2 invoke printNumber,eax .endif invoke ExitProcess,0 main endp end
|