You are on page 1of 3

ARCHITEKTURA KOMPUTERÓW

Architektura, struktura i język asemblera


wirtualnego mikrokomputera SimpSim
(wprowadzenie do operacji dodawania i
odejmowania typu integer w formacie SimpSim)
Prof. dr hab. inż. Evgeny Ochin
eochin@ajp.edu.pl

Kolokwium N1
„Arytmetyka liczb typu Integer„

Imię Nazwisko, Nr Albumu

Imię pliku:
Imię_Nazwisko_Kol_N2.doc

2023

Strona 1|3
ARCHITEKTURA KOMPUTERÓW

Operacji z liczbами całkowitymi w formacie jednobajtowym


«dodawanie B=B'+B", inwersja znaku B:=-B, odejmowanie B=B'-B", mnożenie
B=B'*B" , dzielenie B=B'/B" , porównanie z zerem <B=0?>, porównanie <B'=B"?>»
Kolokwium nr 1, Część I
«dodawanie B=B'+B", inwersja znaku B:=-B, odejmowanie B=B'-B"»
Nazwisko Imię, Nr Albumu A= a4 a3 a2 a1 a0 =17611, Liczba losowa R=17 (będzie to liczba losowa :-)
D'=+| a1 a0 *R|mod100=+|11*17|mod100=+|187|mod100=+87
D"=-| a3 a2 *R|mod100=-|76*17|mod100=-|1292|mod100=-92

′ ′ " "
Konwersja 𝐷10 = +87 => 𝐵𝑧𝑚 = Konwersja 𝐷10 = −92 => 𝐵𝑧𝑚 =
′ ′ ′ ′ ′ ′ ′ ′ " " " " " " " "
𝑍 𝑏6 𝑏5 𝑏4 𝑏3 𝑏2 𝑏1 𝑏0 𝑍 𝑏6 𝑏5 𝑏4 𝑏3 𝑏2 𝑏1 𝑏0
Dzielenie przez 2: Dzielenie przez 2:

′ ′
Konwersja 𝐵𝑧𝑚 => 𝐵𝑢𝑧𝑝
" "
′ ′
if 𝑍 = 1 then (𝐵𝑢𝑧𝑝 Konwersja 𝐵𝑧𝑚 => 𝐵𝑢𝑧𝑝
" "
= 𝑍 ′ ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝑏6′ 𝑏5′ 𝑏4′ 𝑏3′ 𝑏2′ 𝑏1′ 𝑏0′ if 𝑍 = 1 then (𝐵𝑢𝑧𝑝
+ 00000001) else (𝐵𝑢𝑧𝑝 ′ ′
= 𝐵𝑧𝑚 ) = 𝑍 " ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝑏" 𝑏" 𝑏" 𝑏" 𝑏" 𝑏" 𝑏"
6 5 4 3 2 1 0
′ ′ " "
𝐵𝑢𝑧𝑝 = 𝐵𝑧𝑚 =01010111 + 00000001) else (𝐵𝑢𝑧𝑝 = 𝐵𝑧𝑚 )
"
𝐵𝑧𝑚 " " " " " " " "
= 𝑍 𝑏6 𝑏5 𝑏4 𝑏3 𝑏2 𝑏1 𝑏0 = 11011100
𝑏6" 𝑏5" 𝑏4" 𝑏3" 𝑏2" 𝑏1" 𝑏0" = 10100011
𝑍 " ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
+ 00000001
= 10100100

1. Wykonanie operacji „B=B'+B" w SL2



𝐵𝑢𝑧𝑝 = 𝑍 ′ 𝑏6′ 𝑏5′ 𝑏4′ 𝑏3′ 𝑏2′ 𝑏1′ 𝑏0′ 01010111
+ 10100100
"
𝐵𝑢𝑧𝑝 = 𝑍 " 𝑏6" 𝑏5" 𝑏4" 𝑏3" 𝑏2" 𝑏1" 𝑏0"
𝐵𝑢𝑧𝑝 = 𝑍𝑏6 𝑏5 𝑏4 𝑏3 𝑏2 𝑏1 𝑏0 11111011
p7=1
a. Sprawdzić rezultat operacji dodawania na podstawie
analizy przeniesienia w znak (p7) i przeniesienia
ze znaku (p8): if (p8 ≠p7) then PSP1:=1 else PSP:=0.
Bo (p8 =p7) — wynik dodawania jest prawidłowy.
b. Konwersja B =>D
6

𝐷 = −𝑧 ∙ 2 + ∑ 𝑏𝑖 ∙ 2𝑖 = − 1 ∙ 27 + 1 ∙ 26 + 1 ∙ 25 + 1 ∙ 24 + 1 ∙ 23 + 0 ∙ 22 + 1 ∙ 21 + 1 ∙ 20
7

𝑖=0
= −128 + 64 + 32 + 16 + 8 + 0 + 2 + 1 = −5

1
PRZEPEŁNIANIE SIATKI POZYCYJNEJ

Strona 2|3
ARCHITEKTURA KOMPUTERÓW

2. Wykonanie operacji „B=B'-B" w SL2

a. Wykonać opieracie odejmowania B=B'-B" jako opieracie dodawania B=B'+(-B"), gdzie (-) jest
operacja zmiany znaku liczby.
b. Operacja zmiany znaku: 𝐵" ≔ (−𝐵" ) = 𝑍 ̅̅̅" ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝑏6" 𝑏5" 𝑏4" 𝑏3" 𝑏2" 𝑏1" 𝑏0" +00000001=
𝐵" = 10100100
𝑍′′𝑏′′6 𝑏′′5 𝑏′′4 𝑏′′3 𝑏′′2 𝑏′′1 𝑏′′0 = 01011011
+ 00000001
−𝐵" = 01011100
c. Wykonać operację B=B'+B"
B'uzp= 01010111
+
-B"uzp= 01011100
B uzp= 10110011
p7=1
d. Sprawdzić rezultat operacji dodawania na podstawie analizy przeniesienia w znak (p7) i
przeniesienia ze znaku (p8): if (p8 ≠p7) then PSP:=1 else PSP:=0. Bo (p8 =p7) — wynik
dodawania jest prawidłowy.
e. Konwersja B =>D
6

𝐷 = −𝑧 ∙ 2 + ∑ 𝑏𝑖 ∙ 2𝑖 = − 1 ∙ 27 + 0 ∙ 26 + 1 ∙ 25 + 1 ∙ 24 + 0 ∙ 23 + 0 ∙ 22 + 1 ∙ 21 + 1 ∙ 20
7

𝑖=0
= −128 + 0 + 32 + 16 + 0 + 0 + 2 + 1 = −77
f. Sprawdzić rezultat opieracie na podstawie analizy znaków operandów
i znaku rezultatu opieracie (if Z'≠Z" then PSP nie możliwe): D= D'-D"? 87 - (-92) =+179.
Bo Z'=Z”≠Z mamy PSP – Przepełnienie Siatki Pozycyjnej.

Formularz raportu
Nazwisko Imię _________________________
Nr Albumu A= ______, Liczba losowa R= __
Przykład raportu SL10 SL2
′ ′
𝐵𝑧𝑚 =01010111 𝐵𝑧𝑚 =01010111
Operand I 87 87 ′ ′
𝐵𝑢𝑧𝑝 =01010111 𝐵𝑢𝑧𝑝 =01010111
Operacje
+ - + -
′ "
𝐵𝑧𝑚 =11011100 𝐵𝑧𝑚 =11011100
Operand II -92 -92 ′ "
𝐵𝑢𝑧𝑝 =10100100 𝐵𝑢𝑧𝑝 =10100100
= = = =
′ ′
𝐵𝑢𝑧𝑝 =11111011 𝐵𝑢𝑧𝑝 =10110011
Wynik operacji -5 179 ′ PSP
𝐵𝑧𝑚 =10000101

Strona 3|3

You might also like