code segment para public 'code' assume cs:code, ds:code, es:nothing, ss:nothing



Hasonló dokumentumok
A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

Előszó avagy Murphy és az optimizmus. Tartalomjegyzék

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Assembly Utasítások, programok. Iványi Péter

Assembly utasítások listája

assume CS:Code, DS:Data, SS:Stack Start: xor di, di mov si, 1 Torles int 10h mov dl, 40 xor bh, bh mov ah, 02h Kesleltet int 16h

Assebly feladatok SHR SHL NOT NEG AND XOR. Ezt követően ismertetni kell a szoftver megszakítás fogalmát és szükségességét.

Megszakítások és kivételek

Assembly. Iványi Péter

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani.

ELŐSZÓTJ "Előszó" \l

Stack Vezérlés szerkezet Adat 2.

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

[1] Bevezetés. A "debug" a DOS-ból közvetlenûl indítható a "debug" szó begépelésével. Kilépés hasonlóképpen a "q" paranccsal történik.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Információs Technológia

Az egér, a botkormány (joystick) és a nyomtató programozása DOS-ban

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

A 32 bites x86-os architektúra regiszterei

Karunkról Kari digitális könyvtár

Aritmetikai utasítások

Assembly Címzési módok. Iványi Péter

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES

A számítógép alapfelépítése

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

Bevezetés a számítástechnikába

Kitlei Róbert kitlei.web.elte.hu. Karunkról Kari digitális könyvtár

Adatelérés és memóriakezelés

Assembly programozás levelező tagozat

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

n-pr H 5 C 6 CHCl 2 Pascal és assembler

GÁBOR DÉNES FŐISKOLA PREZENTÁCIÓ. Vezetőtanár: Ágoston György 2002/ szemeszter. 222 lap

Aritmetikai utasítások I.

A billentyűzet a legfontosabb adatbeviteli eszköz, mely szinte rögtön a számítógép bekapcsolása után,,életre kel. Segítségével az operációs rendszer

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

DIALOG időkapcsoló PROGRAMOZÁSI ÚTMUTATÓ

Máté: Assembly programozás

1. ábra: Perifériára való írás idődiagramja

Irvine eljárások. ClrScr - Törli a képernyő tartalmát és a kurzort a képernyő bal felső sarkába helyezi (Clear Screen).

Processzorok Utasításszintű Kezelése tavasz

Dr. Máté Eörs docens. Képfeldolgozás és Számítógépes Grafika Tanszék Árpád tér 2. II. em

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

START. Billentyűzár ki. Üss be egy számot. Beütöttem az összes számot. Hívás. Várakozás. felveszik. Beszélek. Befejezem a beszélgetést.

Novell és Windows7 bejelentkezési jelszavak módosítása

1. Fejtsd meg a keresztrejtvényt! Írd le, mit tudsz a függőleges sorban olvasható

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Tanulási segédlet 4. osztály

Programozás I gyakorlat

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

1. Prestigio MultiPad 2. Tápadapter 3. Hordozótok 4. USB-kábel 5. Rövid használati útmutató 6. Garancialevél 7. Jogi és biztonsági közlemény

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Digitális rendszerek. Utasításarchitektúra szintje

7/8. gyakorlat Karaktertömbök és sztringkezelés

1.A. feladat: Programablakok

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

A kódgenerálás helye a fordítási folyamatban. Kódgenerálás I. (kifejezések és vezérlési szerkezetek) A kódgenerálás feladata. Ebben az előadásban...

Egyszerű RISC CPU tervezése

Táblázatos adatok használata

Bevezetés a számítástechnikába

Programozás I gyakorlat

I. Specifikáció készítés. II. Algoritmus készítés

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

Adatok bevitele a dokumentumba

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Paraméter átadás regisztereken keresztül

II. KMAPR21TNB, KMAPR21ONB PC

Assembly programozás Bevezetés

INFORMATIKA tétel 2019

Szövegszerkesztés Verzió: 0.051

1. Az utasítás beolvasása a processzorba

A MiniRISC processzor

Mérési utasítás Mikrokontroller programozás 2.sz. mérés

18. Szövegszerkesztők

1. Fejtsd meg a keresztrejtvényt! Írd le, mit tudsz a függőleges sorban olvasható

Hol használjuk a szövegszerkesztőt? Az élet minden területén megtalálható: levelet, meghívót, dolgozatot, feladatlapot, könyvet is készíthetünk vele.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

Fordítóprogramok (A,C,T szakirány) Feladatgy jtemény

Bevezetés a programozásba I.

Számrendszerek és az informatika


Máté: Assembly programozás

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

MS-LT-01 Adatbeviteli Terminál Üzemeltetési Kézikönyv

Tudnivalók az otthon kidolgozandó feladatokról

1. Alapok. #!/bin/bash

M o n o R a i n automata mágnesszelep

Kirakós játék. Döntő február 22. Alakzatok (katalógus) DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2013/2014

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

5.1.4 Laborgyakorlat: A Windows számológép használata hálózati címeknél

Szövegek C++ -ban, a string osztály

Átírás:

Készítsen VIZSGA3.COM programot, amely a képernyő bal felső sarkában megjeleníti az egérgombok pillanatnyi állapotát. Azaz a "bal", "jobb", "mindkettő", "egyik sem" szövegeket írja ki, attól függően, hogy éppen melyik gomb van lenyomva. Kilépés: ha az egérkurzort a bal felső sarokba visszük! start: mov ax,3 mov ax,1 int 33h mov si,5 mov ax,3 int 33h and cx,-8 and dx,-8 add cx,dx cmp cx,0 jz kilep cmp bx,si jz ciklus ; ha nem valtozott akkor vissza az elejere mov si,bx cmp bx,1 mov dx,offset bal jz kiir cmp bx,2 mov dx,offset jobb jz kiir cmp bx,3 mov dx,offset mind2 jz kiir mov dx,offset egyikse kiir: mov ax,2 int 33h mov ax,1 int 33h jmp ciklus kilep: bal db 'bal ',8,8,8,8,8,8,8,8,8,'$' jobb db 'jobb ',8,8,8,8,8,8,8,8,8,'$' mind2 db 'mind2 ',8,8,8,8,8,8,8,8,8,'$' egyikse db 'egyik sem',8,8,8,8,8,8,8,8,8,'$

Készítsen "ELDONT.COM" Assembly programot, amely 1. letörli a képernyőt, 2. kiírja: "Üssön le maximum 10 betűt vagy számot, Esc, Q, q - vége!", 3. és a leütött billentyűket megvizsgálja, betű, vagy szám és kiírja a képernyőre. A program a 10. leütött billentyűre, Esc-re, "q"-ra vagy "Q"-ra érjen véget (amelyik előbb bekövetkezik). mov dx,offset msg mov cx,10 mov ah,8 cmp al,27 jz kilep cmp al,'q' jz kilep cmp al,'q' jz kilep mov dl,al or al,32 ; kisbetusse convertal cmp al,'z' ja semmi cmp al,'a' mov dx,offset betu jae kiir cmp al,'9' ja semmi cmp al,'0' jb semmi mov dx,offset szam kiir: semmi: loop ciklus kilep: msg db 'Usson le max 10 betut vagy szamot, Esc,Q,q - vege',13,10,'$' betu db '-betu',13,10,'$' szam db '-szam',13,10,'$' code ends end start

Készítsen VIZSGA3.COM programot, amely képernyőtörlés után elszámol 99-től l-ig (visszafelé). A számokat egyesével írja ki, egymás alá, várjon egy billentyű leütésére és Esc-re azonnal érjen véget. start: mov ax,3 mov cx,99 mov bl,10 mov ax,cx div bl cmp al,0 jz kicsi add al,'0' mov dl,al push ax pop ax kicsi: add ah,'0' mov dl,ah mov mov int dx,offset crlf ah,9 21h loop ciklus mov ah,8 crlf db 13,10,'$'

Készítsen "SZIA.COM" Assembly programot, amely 1. letörli a képernyőt, 2. megkérdezi "Hogy hívnak?" és bekér egy nevet, amely: mov dx,offset whoru mov cx,10 mov di,offset nev mov ah,8 cmp al,13 jz vege mov [di],al inc di mov dl,al loop ciklus vege: cmp cx,10 jz hiba mov dx,offset szia mov dx,offset nev jmp kilep hiba: mov dx,offset hibas kilep: whoru db 'Hogy hivnak? $' nev db '$$$$$$$$$$$' szia db 13,10,'Szia, $' hibas db 13,10,'Nem irtal be semmit!$' code ends end start

Készítsen "KERET.COM" Assembly programot, amely letörli a képernyőt és egy "O" betűkből álló keretet rajzol a képernyőre, majd kilép DOS-ba. A rajzolást ciklusokkal oldja meg, ne egy az egyben történő, O betűket és szóközöket tartalmazó string kiíratásával! mov ax,0b800h mov es,ax xor di,di mov cx,30 mov bx,20*80*2 vizszintes: mov byte ptr es:[di],'o' add di,bx mov byte ptr es:[di],'o' sub di,bx inc di inc di loop vizszintes xor di,di mov cx,21 mov bx,30*2 fuggoleges: mov byte ptr es:[di],'o' add di,bx mov byte ptr es:[di],'o' sub di,bx add di,160 loop fuggoleges code mov int ends end ah,4ch 21h start

Készítsen "NEHANY.COM" Assembly programot, amely 1. letörli a képernyőt, 2. udvariasan bekér egy egyjegyű számot és egy karaktert, és a karaktert annyiszor kiírja a képernyőre mov mov int mov int cmp jz xor mov sub ah,9 dx,offset msg1 21h ah,1 21h al,13 hiba cx,cx cl,al cl,'0' mov dx,offset msg2 mov ah,1 cmp al,13 jz hiba mov bl,al mov dl,13 mov dl,10 mov dl,bl loop ciklus jmp kilep hiba: mov dx,offset hibas kilep: msg1 db 'Kerek egy szamot: $' msg2 db 13,10,'Kerek egy karaktert: $' hibas db 'Nem irtal be semmit!$'

Készítsen "KIIR3.COM" Assembly programot, amely letörli a képernyőt és kiírja az "Assembly" szót a következőképpen: A As Ass xor bx,bx inc bx mov cx,bx mov si,offset msg kiir: lodsb ; = mov al,[si++] mov dl,al loop kiir mov dx,offset crlf cmp bx,8 jnz ciklus kilep: msg db 'Assembly' crlf db 13,10,'$'

Készítsen VIZSGA3.COM programot. A felhasználó gondol egy 0 és 9 közé eső számot és a gép megpróbálja kitalálni, a "kisebb mint...?", "nagyobb mint...?" kérdésekkel. A felhasználó az I betűt üti le, ha a feltett kérdés igaz, H-t, ha hamis. Az elején egy rövid üzenetben tájékoztassa a felhasználót a teendőkről! mov dx,offset msg mov bl,0 mov cl,9 cmp bl,cl jae megvan mov dx,offset km mov dl,cl add dl,bl inc dl shr dl,1 add dl,'0' sub dl,'0' mov ah,1 or al,32 cmp al,'i' jz igen mov bl,dl jmp ciklus igen: mov cl,dl dec cl jmp ciklus megvan: mov dx,offset r mov dl,bl add dl,'0' msg db 'Gondolj 1 szamra 0..9 kozott es en kitalalom',13,10,'$' km db 13,10,'Kisebb mint (I/N) $' r db 13,10,'A szamod: $'

Készítsen "UGRIK.COM" Assembly programot, amely letörli a képernyőt, és kiírja az angol ABC betűit a-tól z-ig úgy, hogy minden betű kiírása után vár egy billentyű lenyomására, és - Esc, "q", "Q" esetén azonnal véget ér a program, - a szóközre (space) 5 betűt ugrik előre, - a Backspace-re 5-öt hátra, mov dx,offset help mov dl,'a' mov ah,8 cmp al,27 jz kilep cmp al,'q' jz kilep cmp al,'q' jz kilep cmp al,32 jz space cmp al,8 jz backspace inc dl vege: cmp dl,'z' jbe ciklus jmp kilep space: add dl,5 jmp vege backspace: sub dl,5 jmp vege kilep: help db 'kilepes=esc/q/q Space=+5 Backspace=-5 ugras',13,10,'$'

Készítsen "KISNAGY.COM" Assembly programot, amely letörli a képernyőt, bekér betűket, amelyeket úgy ír ki, hogy kisbetű helyett nagybetűt és nagy helyett kicsit! A program a 10. leütött billentyűre, Esc-re, "q"-ra vagy "Q"-ra érjen véget (amelyik előbb bekövetkezik). mov ah,8 ; bill bekeres cmp al,27 ; meglesi hogy ESC-e jz kilep xor al,32 ; ellenkezojere allitja azt a bitet ami nagy/kisbetukert felel mov dl,al ; dl-be atrakja a modositott betut or al,32 ; al-ban levo betut kisbetusse konvertalja igy csak 'q'-ra kell vizsgalni cmp al,'q' jz kilep ; kiirja a betut jmp ciklus kilep: code ends end start

Készítsen "KIIR2.COM" Assembly programot, amely letörli a képernyőt és kiírja az "Assembly" szót a következőképpen: Assembly ssembly embly stb. mov cx,8 xor bx,bx mov dx,offset msg add dx,bx ; eltolas merteke inc bx mov add int dx,offset bck ; kurzort jo helyre viszi dx,bx ; eltolas merteke 21h loop ciklus msg db 'Assembly',10,'$' bck db 8,8,8,8,8,8,8,8,'$'

Készítsen "FERDE1.COM" Assembly programot, amely letörli a képernyőt, udvariasan bekér egy szöveget (befejezés Enterre), amelyet az ábrán látható módon ferdén kiír a képernyőre. mov dx,offset welcome mov di,offset s xor cx,cx mov ah,8 cmp al,13 jz kiir stosb ; = mov [di],al ; inc di mov dl,al inc cx jmp ciklus kiir: mov si,offset s cmp cx,0 jz hiba mov ax,0b800h ; kepernyo memoria cime mov es,ax mov di,320 ; 3. sor 1. karater pozicioja ciklus2: movsb ; mov al,[si++] ; mov es:[di++],al add di,161 loop ciklus2 jmp vege hiba: mov dx,offset hibas vege: s db '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$' welcome db 'Irj be 1 szoveget: $' hibas db 'Nem irtal be semmit!$'

Készítsen VIZSGA3.COM programot, amely letörli a képernyőt és megjeleníti a leütött billentyűket a képernyőn egészen addig, míg az ABC szó betűit nem írjuk be (bármilyen sorrendben), ekkor véget ér. Az elején egy rövid üzenetben tájékoztassa a felhasználót a teendőkről! xor bh,bh ; utolso 3 bit tarolja a b c leutottseget mov ah,1 or al,32 ; kisbetusse konvertal sub al,'a' ; betuket 0..26 tartomanyra kepezi mov cl,al shl ah,cl ; ha al='a' akkor ah=1, al='b'-> ah=2, al='c'->ah=4 or bh,ah ; ha a/b/c-t utott akkor bh-ban beallitja utolso 3bitet amelyiket leutotte and bh,7 ; elso 5bitet 0-ra allitja cmp bh,7 ; ha bh=00000111 akkor kilep jnz ciklus vege: code ends end start

Készítsen VIZSGA3.COM programot, amely képernyőtörlés után beolvas egy szöveget (max. 10 karakter, befejezés Enterre) és kiírja úgy, hogy a magánhangzók után a "-va", "-ve" stb. betűket is kiírja. Példa: beírjuk: balaton, a program kiírja: bavalavatovon mov dx,offset welcome mov di,offset msg ; itt tarolom a bekert szoveget add di,2 ; 13,10-et nem akarom felulirni xor dh,dh ; leutott karakterek szama mov ah,1 cmp al,13 jz kiir inc dh stosb ; [di]:=al mov dl,al ; elmentjuk a karaktert dl-be mov cx,5 mov si,offset mgh ismgh: lodsb ; al<-[si++] cmp al,dl jz mghyes loop ismgh jmp ciklus ; ha idaig jut akkor ez msgh mghyes: mov al,'v' stosb ; v-t tarolja el mov al,dl stosb ; most a mgh-t tarolja el jmp ciklus kiir: ; kiirashoz keszul cmp dh,0 jz hiba mov dx,offset msg jmp kilep hiba: mov dx,offset hibas kilep: ; kiirja vmelyik szoveget amire dx mutat msg db 13,10,'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$' mgh db 'aeiou' welcome db 'Irj be 1 szoveget: $' hibas db 'Nem irtal be semmit!$'

Készítsen "KETSHIFT.COM" Assembly programot, amely 1. letörli a képernyőt, 2. ezután kiírja a "Nyomja meg egyszerre mindkét SHIFT-et!" üzenetet, 3. és addig vár, amíg mindkét SHIFT nincs lenyomva, ekkor visszatér DOS-ba. mov dx,offset welcome ; valto bill allapot int 16h and al,3 ; 0-ra allitja az elso 6bitet cmp al,3 ; ha utolso 2bit=1 akkor zeroflag=0 lesz jnz ciklus welcome db 'Nyomd meg egyszerre mind2 SHIFT-et!$'

Készítsen VIZSGA3.COM programot, amely képernyőtörlés után elszámol 98-tól 2-ig (visszafelé) kettesével. A számokat egyesével írja ki, egymás alá, várjon egy billentyű leütésére és Esc-re azonnal érjen véget. mov cx,10 mov ax,cx mov bl,10 div bl cmp al,0 ; ha 2 jegyu a szam akkor 0<al mov bx,ax ; bx-be elmentem mert ax el fog romlani jz rovid mov dl,bl add dl,'0' rovid: mov dl,bh add dl,'0' mov dl,13 ; CRLF mov dl,10 dec cx loop ciklus var: mov ah,8 cmp al,27 jnz var kilep:

Készítsen "NEHANY.COM" Assembly programot, amely 1. letörli a képernyőt, 2. udvariasan bekér egy betűt és egy egyjegyű számot, 3. és kiírja az angol ABC betűit a megadott karaktertől, a megadott számút (lásd az ábrát). mov dx,offset kezdo mov ah,1 mov dl,al ; dl-be mentjuk a kezdo karaktert push dx mov dx,offset darab mov ah,1 xor cx,cx mov cl,al ; cl-be mentjuk a kezdo karaktert sub cl,'0' mov dl,13 mov dl,10 pop dx kiir: inc dl loop kiir kezdo db 'Add meg a kezdo betut:$' darab db 13,10,'Hany darabot:$'

Készítsen "KIIR1.COM" Assembly programot, amely letörli a írja az "Assembly" szót a következőképpen: mov cx,10 mov si,offset msg push cx kiir: lodsb ; al-ba beolvassa akt karaktert si poziciorol mov dl,al loop kiir pop cx loop ciklus msg db 13,10,'Assembly$'

Készítsen "FORDIT.COM" Assembly programot, amely letörli a képernyőt és egy megadott stringet fordítva kiír a következő sorba: - hármasért: a szöveget egy udvarias felszólításra kell begépelni, max. 10 karakterből állhat, befejezés Enterre mov dx,offset welcome mov di,offset msg xor cx,cx ; szoveg hossza beker: mov ah,1 cmp al,13 jz fordit stosb inc cx jmp beker fordit: mov dl,13 mov dl,10 dec di mov al,[di] mov dl,al dec di loop ciklus mov int ah,4ch 21h welcome db 'Irj be 1 szoveget:$' msg db '$$$$$$$$$$$$$$$$$$$$$'