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.