UNIWERSYTET ZIELONOGÓRSKI

Transkrypt

UNIWERSYTET ZIELONOGÓRSKI
Architektura komputerów II laboratorium
Uniwersytet Zielonogórski
Wydział Elektrotechniki, Informatyki i Telekomunikacji
Instytut Informatyki i Elektroniki
Zakład Inżynierii Komputerowej
opracowali: dr inż. Arkadiusz Bukowiec
dr inż. Jacek Tkacz, dr inż. Remigiusz Wiśniewski
ĆWICZENIE 2
CEL ĆWICZENIA
 Obsługa standardowych urządzeń we/wy w języku Asembler,
 Obsługa poleceń skoku w języku Asembler.
PRZYGOTOWANIE DO ĆWICZENIA


Kompilacja i konsolidacja programu w języku Asembler,
Struktura programu w języku Asembler.
ZADANIA DO ZREALIZOWANIA
PRZYKŁAD
Napisać, skompilować i uruchomić program zliczający ilość liter ‘a’ we wprowadzonym ciągu znaków
(program poprawnie wyświetli wynik będący cyfrą, tzn. z przedziału od 0 do 9):
.286
.model tiny
.data
ciag db 255 dup('$')
.stack 100h
.code
Start:
mov ax, @data
mov ds, ax
;odczyt ciagu znakow:
mov ah, 0Ah
lea dx, ciag
int 21h
xor cx, cx
lea si, ciag
licz:
cmp byte ptr [si],'a'
jne dalej
inc cx
dalej:
inc si
cmp byte ptr [si],13
jne licz
;wyswietlenie cyfry:
mov dl,cl
add dl,'0'
mov ah,02h
int 21h
;zatrzymanie pogramu:
mov ah,01h
int 21h
mov ax,4C00h
int 21h
end Start
ZADANIE 1.
Zmodyfikować program pokazany w Przykładzie tak, aby po odczycie ciągu tekstowego przechodził
na początek nowej linii oraz wyświetlał poprawnie wynik, który jest większy od 9.
ZADANIE 2.
Napisać, skompilować i uruchomić program, porównujący kody ASCII dwóch wprowadzonych znaków.
Wynik porównania należy wypisać na ekranie w formacie: Znak ‘a’ ma kod ASCII większy od znaku ‘b’.
ZADANIE 3.
Napisać, skompilować i uruchomić program, który wczyta ciąg znaków z klawiatury, zamieni w nim
małe litery na wielkie i przetworzony ciąg wypisze na ekranie.