Другие языки программирования и технологии

Помогите с асемблером. Знает кто нибудь как там пример решить?

Кто-то, наверное, знает. Решить можно, например, так:

.386
.model flat, stdcall
option casemap:none

include windows.inc
include kernel32.inc
include msvcrt.inc
include masm32.inc
includelib kernel32.lib
includelib msvcrt.lib
includelib masm32.lib

Input proto stdcall :byte, :dword
Write proto stdcall :qword
Inkey proto

.stack 100h

.data
Prompt db 'Введите '
VarName db ' : ', 0
Result db 10,'Ответ: ', 0
QuitPrompt db 13, 10, 10,'Для завершения работы нажмите любую клавишу... ', 0

.data?
hStdIn dd ?
hStdOut dd ?
IntBuf dw ?
VarA dq ?
VarC dq ?
VarD dq ?
VarL dq ?
Res dq ?

.code
N88433515:
    invoke GetStdHandle, STD_INPUT_HANDLE
    mov hStdIn, eax
    invoke GetStdHandle, STD_OUTPUT_HANDLE
    mov hStdOut, eax
    invoke Input, 'A', addr VarA
    invoke Input, 'C', addr VarC
    invoke Input, 'D', addr VarD
    invoke Input, 'L', addr VarL
    finit
    fld VarC
    mov IntBuf, 4
    fimul IntBuf
    fadd VarD
    fsub VarL
    fld VarC
    fld VarA
    mov IntBuf,2
    fidiv IntBuf
    fsub
    fdiv
    fstp Res
    invoke crt_printf, addr Result
    invoke Write, Res
    invoke crt_printf, addr QuitPrompt
    invoke Inkey
    ret

Input proc arg1 :byte, arg2 :dword
    local Len :dword
    local Buffer[1026] :byte
    mov al, arg1
    mov byte ptr VarName,al
    invoke crt_printf, addr Prompt
    invoke ReadConsole, hStdIn, addr Buffer, 1026, addr Len, NULL
    invoke StrToFloat, addr Buffer, arg2
    ret
Input endp

Write proc arg :qword
    local Buffer[32] :byte
    invoke FloatToStr, arg, addr Buffer
    invoke crt_printf, addr Buffer
    ret
Write endp

Inkey proc
    invoke crt__kbhit
    test eax, eax
    jz Inkey
    ret
Inkey endp

    end N88433515



P.S. Следовало всё же указать, что у вас за "ассемблер".
cy
cyber40
51 590
Лучший ответ
где пример то??

Похожие вопросы