Помогите написать программы в ассемблере

01.01.2001

помогите написать программы в ассемблере
помогите с простыми программами в ассемблере, на c++ это легко сделать, а тут вообще не понимаю как.
1.Необходимо создать программу-модель анализа пожарного датчика в помещении, которая выводит сообщение «Опасная ситуация» , если t >= 45 grad C.
2.Составьте программу, определяющую, пройдет ли график функции y=5x2-7x+2 через заданную точку с координатами (а, b).
(данные водятся с клавиатуры)

  • Вторая программа для TASM 5 в режиме Ideal. Проверка на корректность ввода с клавиатуры не производится.

    title N88931612
    ideal
    p686
    model flat,stdcall

    includelib 'import32.lib'
    includelib 'imp32i.lib'

    procdesc ExitProcess winapi :dword
    extrn scanf: near
    extrn printf: near
    extrn _getch: near

    dataseg
    PromptA db 'Введите A: ',0
    PromptB db 'Введите B: ',0
    Result1 db 'График функции не проходит через заданную точку',0
    Result2 db 'График функции проходит через заданную точку',0
    QuitPrompt db 13,10,10,'Для завершения работы нажмите любую клавишу... ',0
    fInput db '%f',0

    A dd ?
    B dd ?
    IntBuf dw ?

    codeseg
    Start:
    push offset PromptA
    call printf
    add esp,4
    push offset A
    push offset fInput
    call scanf
    add esp,8
    push offset PromptB
    call printf
    add esp,4
    push offset B
    push offset fInput
    call scanf
    add esp,8
    finit
    fld [A]
    fld st
    fmul
    mov [IntBuf],5
    fimul [IntBuf]
    fld [A]
    mov [IntBuf],7
    fimul [IntBuf]
    fsub
    mov [IntBuf],2
    fiadd [IntBuf]
    fld [B]
    fucomi st(1)
    mov eax,offset Result2
    je ResYes
    mov eax,offset Result1
    ResYes:
    push eax
    call printf
    add esp,4
    push offset QuitPrompt
    call printf
    add esp,4
    call _getch
    call ExitProcess,0
    end Start

    P.S. Библиотека imp32i.lib из комплекта Tasm 5 plus.

  • Стоит сначала указать какой компилятор асм вы используете.
    1) Задаете строку сначала в описании data seg, вот так Atata DB 'Opasnay sityachia $' , потом с помощью cmp (условный оператор) сравниваете регистр, регистр, далее с помощью jge label
    (условного перехода) идете на вывод строки
    lea dx,Atata
    int 21h
    mov ax, 4c00h
    int 21h -закрываемся.
    2) тоже самое, только будет больше сравнений.

Вас заинтересует