Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л.р.1-12.СПРГ-1(40, укр).doc
Скачиваний:
5
Добавлен:
27.08.2019
Размер:
2.33 Mб
Скачать

4. Методичні вказівки з оформлення звіту

Звіт до лабораторної роботи повинен містити:

тему лабораторної роботи;

формулювання мети і задач, що вирішуються в ході виконання роботи;

звіт про особливості виконання арифметичних команд;

докладний звіт про виконання завдань згідно наявного прикладу: алгоритм, тест програми й уміст регістрів мікропроцесора, що змінилися при виконанні чергової команди.

висновки.

5. Рішення типового прикладу.

5.1 Вычислить z:=5*w/4; где переменные w, z: word.

; z=5*w/4

mov сx, 5 ; множник 5 ==> cx

mov ax,[w] ; множене w ==> ax

mul cx ; <dx: ax> = <ax>*<cx>

mov cx,4

div cx ; 5*w/4

mov [z], ax

Проаналізувати результат, при наявності помилок – виправити.

5.2 Обчислити z=w/10 для всіляких сполучень 8- і 16-розрядних типів цілих даних. Змінні ww, zw, wi, zi – word, ws, zs, wb, zb – byte.

;=============word===============

mov ax,[ww] ; множник w ==> ax

mov cx,10

div cx ; <ax>=<dx: ax>/<cx>=w/10

mov [zw], ax

mov ax,[wi] ; множене w ==> ax

idiv cx ; <ax>=<dx: ax>/<cx>=w/10

mov [zi], ax

;============= byte ===============

mov al,[wb] ; множене w ==> al

mov cl,10

div cl ; <al>=<ax>/<cl>= w/10

mov [zb], al

mov al,[ws] ; множене w ==> al

idiv cl ; <al>=<ax>/<cl>= w/10

mov [zs], al

Проаналізувати результат, при наявності помилок – виправити.

5.3 Знайти значення виразу (25/c-d+2)/(d+a*a-1)

алгоритм

format pe

уміст регістрів

start:

al <- [a]

mov al, [a]

al: 01

ah: al <- al *al

imul al

al: 01

ax <- ax-1

dec ax

ax: 0000

steck <- ax

push ax

steck: 0000

al <- [d]

mov al, [d]

al: 01

al => ax

cbw

ax: 0001

si <- ax

mov si, ax

si: 0001

bx <- stec

pop bx

bx: 0000

bx <- bx + ax

add bx, ax

bx: 0001 ZF:0, PF: 0

[znam] <- bx

mov [znam], bx

M: 0100

ax <- 25

mov ax, 25

ax: 0019

al <- ah: al / [c]

idiv [c]

al: 05, AF: 1

al => ax

cbw

ax: 0005

ax <- ax - si

sub ax, si

ax: 0004 AF: 0

ax <- ax +2

add ax, 2

ax: 0006, PF: 1

ax =>dx: ax

cwd

ax: 0006, dx: 0000

word [chisl] <- ax

mov word [chisl], ax|

M:0600

word [chisl+2]<-dx

mov word [chisl+2], dx

M:0000

ax <- dx: ax / bx

idiv bx

ax: 0006, PF:0; AF:1

[rez] <- ax

mov [rez], ax

M: 0600

ret

; секция данных

chisl dd?

znam dw?

rez dw?

a db 1

c db 5

d db 1

Схема укрупненого алгоритму виконання наведеного прикладу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]