Курсовая работа: Конкатенація строк Assembler
sahf
fld b
fld a
fcom
fstsw ax
sahf
je equal
ja greater
jb lower
jmp theend
Команда ffree вигружає зі стека операнди, щоб потім загрузити їх знову. Далі йде такий ж логічних русловій, але тепер перехідов більше. je equal якщо операнди рівни між собою, тоді перейти на мітку equal. Також для ja, jb, але вони перевіряються умови більше або менше відповідно. Тепер подрібніше о кожній з меток.
equal:
fld cons
fstp y
jmp theend
У цій метці до стеку загружається -2, потім ця константа передається до змінної y. По закінченню операції управління переходе до мітки theend.
greater:
print chr$("A IS GREATER", 13, 10)
fxch
fdiv
fld one
fadd
fstp y
jmp theend
У цьому блоці кода виконується ділення b на a. Яке досягається, командами fxch, fdiv. Перша потрібна для зміни міст a и b, друга діле їх друг на друга. У кінці до результату прибавляється константа 1, та усе це грузиться до y. До закінченню управління передається до мітки theend.
lower:
print chr$("A IS LOWER", 13, 10)
fsub st(0), st(1)
fld a