Masm32 printf scanf .if - Assembler
Формулировка задачи:
Доброго времени суток!
Народ, подскажите, как в данном примере мне с помощью printf и scanf вводить и выводить данные?
Просто по поводу их куча ошибок.
И по поводу макроса .if тоже плюётся на операнды
.586 .model flat, c, STDCALL option casemap :none; case sensitive include \masm32\include\windows.inc; always first include \masm32\macros\macros.asm; MASM support macros ; ---------------------------------------------------------------- - ; include files that have MASM format prototypes for function calls ; ---------------------------------------------------------------- - include \masm32\include\masm32.inc include \masm32\include\gdi32.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc ; ------------------------------------------------ ; Library files that have definitions for function ; exports and tested reliable prebuilt code. ; ------------------------------------------------ includelib \masm32\lib\masm32.lib includelib \masm32\lib\gdi32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib EXTRN printf:proc EXTRN scanf:proc .data entr_bA db 'Enter _bA: ',0 prnt_bA db '_bA is: %d',0 _bA dd 86 entr_c db 'Enter _c: ',0 prnt_c db '_c is: %d',0 _c dd 2 entr_f db 'Enter _f: ',0 prnt_f db '_f is: %d',0 _f dd 00 entr_a db 'Enter _a: ',0 prnt_a db '_a is: %d',0 _a dd -55 entr_k db 'Enter _k: ',0 prnt_k db '_k is: %d',0 _k dd 23 scnId db '%d',0 .code Start: mov eax,offset entr_f push eax call printf add esp,4 lea eax,_f push eax mov eax,offset scnId push eax call scanf add esp,8 .if _f >= _bA jmp JMPTO .endif ffree st(0) ffree st(1) ffree st(2) ffree st(3) ffree st(4) ffree st(5) ffree st(6) ffree st(7) fild _a fild _bA fild _a fisub fild _k fimul fild _c fisub mov _c,3 fild _c fidiv fiadd fistp _c ffree st(0) ffree st(1) ffree st(2) ffree st(3) ffree st(4) ffree st(5) ffree st(6) ffree st(7) fild _bA fild _bA mov _c,2 fild _c fidiv fild _c fimul fisub fistp _f mov eax,_a not eax mov _a,eax mov eax,_c or eax,_bA mov _bA,eax JMPTO: push _c mov eax,offset prnt_c push eax call printf add esp,8 push _f mov eax,offset prnt_f push eax call printf add esp,8 push _a mov eax,offset prnt_a push eax call printf add esp,8 push _bA mov eax,offset prnt_bA push eax call printf add esp,8 end Start
Решение задачи: «Masm32 printf scanf .if»
textual
Листинг программы
mov eax,_f .if eax >= _bA ... здесь должен быть код, который выполняется если {eax >= _bA} .endif
Объяснение кода листинга программы
- Переменная _f содержит значение, которое сравнивается с _bA.
- Если _f больше или равно _bA, то выполняется код, который находится между .if и .endif.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д