Курсовая работа: Конкатенація строк 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

К-во Просмотров: 429
Бесплатно скачать Курсовая работа: Конкатенація строк Assembler