Програмування на мові Асемблер, Детальна інформація

Програмування на мові Асемблер
Тип документу: Реферат
Сторінок: 9
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 0
Скачувань: 1198
Приклад



push ax ; занести ax , bx , dx в стек

push bx

push dx

; - тут знаходиться програма

pop dx ; вийняти dx, bx , ax із стека.

pop bx

pop ax

Тут зрозуміло ,що команди між push i pop будуть використовувати регістри ax. bx i dx;

тому для збереження початкових значень вони проштовхуютья в стек . Потім ці ж регістри у зворотньому порядку виштовхуються із стека відновлюються початкові значення і підтримуючи стек в правильному стані ( состоянии ).

Перестановка даних ( команда xchg)

Команда xchg -міняє місцями значення двох регістрів або значення регістра з байтом або словом , яке зберігається в пам’ яті .

Приклад

Нехай , ми хочемо переставити значення в регістрах dx i ax. Використовуючи xchg , можна

записати :



xchg ax , dx ; ax ( dx ; dx ( ax

( порядок операндів не грає ролі )

Інакше , для перестановки двох 16 - бітових регістрів , можна використати менш ефективний метод який використовує стек як поміжкове місце збереження одного з значень.

push ax ; стек ( ax

mov ax,dx , ax ( dx

pop dx ; dx ( ( стек початкове значення ax ).

Приклад

Для перестановки двох 8 - бітових значень необхідний третій регістр , так як в стек можна проштовхувати , виштовхувати тільки 16 - бітні слова .

Щоб переставити два байти в al i ah, не використовучи xchg потрібно записати:

mov bh, ah ; bh ( ah

mov ah, al ; ah ( al

mov al, bh ; al ( bh

При використанні xchg цього не потрібно .

The online video editor trusted by teams to make professional video in minutes