| | |
| Stránka: 1 z 1
| [ Príspevkov: 27 ] | |
Autor | Správa |
---|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal F1L1P: 22.11.2014 16:16 | |
|
Vedel by mi niekto vysvetlit ako sa riesia dane ulohy? Dakujem. 1. Aký bude obsah bajtu na offsete 200h v dátovom segmente po vykonaní nasledujúcich inštrukcií?
mov bx, 200h
mov ax, 32ABh
inc ax
mov [bx], ax
2. Je deklarovaná premenná R DB ´abcd´. Čo vypíše nasledujúca postupnosť inštrukcií?
mov di, 1
mov dl, [R+di]
dec di
inc dl
mov ah, 2
int 21h
3. Aké číslo (v desiatkovej sústave) bude v registri AX po vykonaní nasledujúcej postupnosti inštrukcií?
mov ah, 2
mov bh, 3
add ah, bh
add ah, bh
mov al, 2
4. Sú deklarované premenné:
DATA
Data1 DB 0
Data2 DB 2
Data3 DB 4
Čo bude v BX po vykonaní nasledujúcich inštrukcií?
mov al, 2
mov bx, offset Data1
mov [bx], al
5. Predpokladajte, že pamäťové miesta 200h a 201h obsahujú čísla 12h a 34h. (Uvedené adresy chápte ako offset v dátovom segmente.) Čo bude v registri AH po vykonaní nasledujúcich inštrukcií?
mov bx, 200h
mov di, 1
mov ax, 10Ah
add ah, [bx+di]
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Vypracovanie otázok na skúšku/domáca úloha? Mohol by si vyvinúť aspoň nejakú snahu a pýtať sa potom konkrétnu otázku, že čomu vlastne nerozumieš...
_________________ C#, PHP, ... |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 22.11.2014 20:56 | |
|
Riešia sa tak, že sa na ten kód pozrieš, vykonáš si ho v hlave, alebo na papier a napíšeš odpoveď. Na to potrebuješ vedieť, čo ktorá inštrukcia robí. Takže ktorú inštrukciu nevieš?
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 22.11.2014 22:03 | |
|
To nie je domaca uloha odpovede mam len neviem ako sa k nim dostat. Odpovede su 1. ACh, 2. c, 3. 2050, 4. 0, 5. 35h pismeno h znamena ze to je hexadecimalne cislo
|
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 22.11.2014 22:07 | |
|
Ale veď je 9. týždeň a tie inštrukcie sa preberajú na tom predmete v nejakom 3. max 4. týždni. A tieto otázky každý rok niekto rieši, pritom každý odpovede má.
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 22.11.2014 22:13 | |
|
K comu su mi odpovede ked neviem postup?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 22.11.2014 22:26 | |
|
A prečo si nedával v škole pozor?
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 22.11.2014 22:27 | |
|
Lebo to sa musis naucit sam v skole ti nepovedia nic Co robi tento prikaz v 1. ulohe mov [bx], ax?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 22.11.2014 22:29 | |
|
A to si myslíš, alebo máte skutočne predmet "toto je assembler x86, koncom semestra z neho bude skúška, dovidenia"? Co to je prosím za školu a predmet?
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 22.11.2014 22:31 | |
|
Veď pani Janošíková je postaršia milá pani, ktorá mi vždycky pomohla, ak som mal otázku k veci. A tieto otázky boli už aj v tej dobe celkom ojedinelá záležitosť. Myslím, že ich už dávno zmenila, pretože pochopila, že všetci sa na jej zápočty učia len, z vypracovaných veci naspamäť bez rozmýšľania. Jej knižku za 3 - 4€ predpokladám máš, či ? Ak nie odporúčam kúpiť, je tam všetko na ten predmet + si ju môžeš zobrať na skúšku, kde mne veľmi pomohla.
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 22.11.2014 22:34 | |
|
BX píše: A to si myslíš, alebo máte skutočne predmet "toto je assembler x86, koncom semestra z neho bude skúška, dovidenia"? Co to je prosím za školu a predmet? Da sa tak povedat.To nezalezi od skoly ani predmetu ale od ucitela Myslis tuto http://frdsa.fri.uniza.sk/~janosik/Kniha/ProgJSA.html? Jasne ze su zmenene.
|
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 22.11.2014 22:40 | |
|
No presne toto myslím, ale ja som za používanie knižiek. Toto na skúške mať otvorené nemôžeš, aspoň myslím.
@BX - tento týpek je druhák na FRI Informatika a si myslí, že bez učenia sa to dá ľavou zadnou.
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 22.11.2014 22:43 | |
|
Mozem to mat otvorene aj na pisomke no vela z toho nevycitas inak by to nedovolila otvorit. Je mozne ze som to podcenil
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 22.11.2014 22:47 | |
|
Ako x86 nie je úplne triviálna vec (i keď tieto otázky celkom aj hej), ale pýtať sa čo robí inštrukcia mov, to je mi divné. Takže chceš vysvetlenie, ako na to? Napiš do Google "8086 instruction set" a niektorý popis si vyber. Nájdeš tam popis každej inštrukcie. A keď ti aj po tomto nebude niečo jasné, tak kľudne sem napíš znovu.
Samozrejme predpokladám, že máš nejaké základy z fungovania PC. Akože co je to pamäť, byte atď
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 22.11.2014 22:52 | |
|
Viem co robi mov len neviem co robi ten zvysok [bx], ax v registri bx mam 200 v registri ax mam po zvyseni o 1 toto 32AC a ako dostanem ACh?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 22.11.2014 22:59 | |
|
To je dereferencia adresy. Takže na adresu [bx], ale keďže bx je 200h,tak na adresu 200h sa zapíše hodnota registra ax. Lenže register ax ma 2 byty a adresa adresujte len jeden byte. Čiže na byte na adrese 200h sa musí uložiť dvoj bajtová hodnota, to nesedí. Preto sa z hodnoty odskúsne vyšší byte a zapíše sa nižší (tj. ten vpravo). To je taka zjednodušená verzia
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 22.11.2014 23:09 | |
|
Cize ked mam zlozene zatvorky tak to znamena ze do toho co je v nej mozem ulozit maximalne 1 byte nech tam je cokolvek? Ked napisem [bx] to znamena ze obsahuje 200 a mozem donho ulozit 1 byte a keby som mal len bx tak rovnako obsahuje 200 ale mozem donho ulozit 2 byte? Postup by bol rovnaky aj keby zamenim v ulohe offset aj segment za iny? Ako viem kde konci a kde zacina dalsi byte? Byte sa odstranuje vzdy vyssi a potom nizsi? Keby som mal register eax a ebx namiesto ax a bx tak potom by som musel odstranit 2 byty zlava? Neviem to lebo v prednaskach sa to nenachadza ani asi v jej knihe.
Pri 2. ulohe mov di, 1; ulozim do registra di 1 mov dl, [R+di]; ulozim do dl R co je 4 byty a di 1 cize dokopy 5 lenze do registra dl mozem ulozit len 1 byte tak co s tym? dec di; znizim di o 1 inc dl; zvysim dl o 1 mov ah, 2; ulozim do ah 2 to znamena ze tam chcem ulozit cislo 2 o velkosti 1 byte? int 21h; tento neviem a nakoniec mam dostat c
Pri 3. ulohe mov ah, 2; ulozim do ah 2 o velkosti 1 byte? mov bh, 3; ulozim do bh 3 add ah, bh; pripocitam k 2 cislo 3 co je 5 a to su 2 byty lenze do ah mozem ulozit len 1 tak potom ako? add ah, bh; rovnako ako vyssie mov al, 2; ulozim do al cislo 2 a ma vyjst 2050
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 23.11.2014 8:36 | |
|
Som to asi moc zjednodušil tým trhanim bytov. Keď je niečo v hranatých zátvorkách, tak je to adresa do pamäte. Ta ja organizovaná po bytoch, čiže vždy adresuješ na jeden byte. Takže ak máš v bx 100(desiatkovo), tak [bx] je adresa stého bytu v pamäti (vlastne sto prvého, adresujte sa od nuly) . No a keď register ax má 2 byty a uložíš ho na adresu 100, tak sa uloží jeho spodná polovica na adresu 100 a horná na adresu 101. Ak máš register ebx, ktorý má 4 byty a uložíš ho na adresu 100, tak sa rozloží na byty 100,101,102,103 od najnižšieho (zprava).
A ešte základy: byte má rozsah 256 čísel, takže typicky 0-255 desiatkovo. V hex sú to dve cifry od 00 do FF. Register eax má štyri byty, jeho nižšia polovica sa vola ax a ma dva byty a ten je rozdelený na al(nižšia polovica) a ah(vyššia polovica), ktoré majú jeden byte. Podobne je to s bx. ax (a podobne aj bx) musíš vždy vidieť ako dva registre vedľa seba: ah|al. Takže keď robíš s ah/al a nakoniec po tebe chcú hodnotu v ax, tak ich zlepíš k sebe a spočítaš tak výslednú hodnotu ax. Ta premenná R "abcd" znamená, že [R] ukazuje na písmeno a, [R+1] na písmeno b atď. Kresli si to na papier a kreslí si aj bity.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 23.11.2014 13:24 | |
|
Pri CX a DX to preco naplati aj tie sa delia na cl,ch a dl,dh? 1 pismeno alebo cislo znamena 1 byte? Pri 2. ulohe mov di, 1; ulozim do registra di 1 mov dl, [R+di]; ulozim do dl b dec di; znizim di o 1 cize v nom bude 0 inc dl; zvysim dl o 1 potom tam bude c? mov ah, 2; ulozim do ah 2 naco ho tam ukladam? int 21h; tento prikaz spravi co?
Pri 3. ulohe mov ah, 2; ulozim do ah 2 o velkosti 1 byte alebo sa tu neda urcit presny pocet bytov? mov bh, 3; ulozim do bh 3 add ah, bh; pripocitam k 2 cislo 3 co je 5 a to su 2 byty alebo 1? add ah, bh; pripocitam k 5 cislo 3 co je 8 mov al, 2; ulozim do al cislo 2 Spocitam a vyjde 82 a nie 2050 preco?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 23.11.2014 14:05 | |
|
Šup do Google "8086 registers" a čítaj. Alebo aj obrázky nájdeš k organizácii registrov.
int 21h je výpis na obrazovku. Pre viac informácií, šup do Google "int 21h intruction". Tak sa dozvieš aj to, prečo je pred int 21h vždy niečo s dl a ah. Hľadaj trochu, určite ťa tu teraz nejdem učiť celý semester assembleru. A ak je predmet nejak zlý, sťažujte sa u vedenia, ak máte problémy viacerí.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 23.11.2014 14:13 | |
|
Potreboval by som aspon vediet ako vyriesim tych 5 uloh BX píše: Takže ak máš v bx 100(desiatkovo), tak [bx] je adresa stého bytu v pamäti (vlastne sto prvého, adresujte sa od nuly) . No a keď register ax má 2 byty a uložíš ho na adresu 100, tak sa uloží jeho spodná polovica na adresu 100 a horná na adresu 101. Ak máš register ebx, ktorý má 4 byty a uložíš ho na adresu 100, tak sa rozloží na byty 100,101,102,103 od najnižšieho (zprava). Preco sa pri bx uklada najnizsi na 100 a pri ebx uz nie na 100 ale na 103?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 23.11.2014 15:20 | |
|
Aj pri ebx sa v mojom príklade uloží najnižší na adresu 100. Od najnižšieho (zprava) som myslel tak, že zprava v čísle. Takže AABBCCDDh sa uloží ako DD CC BB AA, kde DD je na adrese sto, CC na adrese 101 atď. Tj. tzv. Little Endian, ktorý sa používa v dnešných PC http://sk.m.wikipedia.org/wiki/Endianita
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 23.11.2014 22:15 | |
|
Co robim v tychto krokoch zle ze mi vychadzaju zle vysledky? Pri 2. ulohe mov di, 1; ulozim do registra di 1 mov dl, [R+di]; ulozim do dl b dec di; znizim di o 1 cize v nom bude 0 inc dl; zvysim dl o 1 potom tam bude c? mov ah, 2; ulozim do ah 2 naco ho tam ukladam? int 21h; tento prikaz spravi co? Meni vysledok?
Pri 3. ulohe mov ah, 2; ulozim do ah 2 mov bh, 3; ulozim do bh 3 add ah, bh; pripocitam k 2 cislo 3 co je 5 add ah, bh; pripocitam k 5 cislo 3 co je 8 mov al, 2; ulozim do al cislo 2 Spocitam ah+al a vyjde 82 a nie 2050 preco?
Pri 4. ulohe DATA Data1 DB 0 Data2 DB 2 Data3 DB 4 Čo bude v BX po vykonaní nasledujúcich inštrukcií? mov al, 2; ulozim do al 2 mov bx, offset Data1; ulozim do bx 0 mov [bx], al; ulozim do bx 2 a vyjde mi 2 no ma vyjst 0
Pri 5. ulohe mov bx, 200h; ulozim do bx 200 mov di, 1; ulozim do di 1 mov ax, 10Ah; ulozim do ax 10A to rozdelim na ah=1 a al=0A add ah, [bx+di]; pripocitam k 1 cislo 201 cize 202 co je zle a ma vyjst 36
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 23.11.2014 23:52 | |
|
Citácia: dec di; znizim di o 1 cize v nom bude 0 Čo je to register di? Odkiaľ si vzal, že tam bude nula? Tam niečo nesedí a asi je tam naschvál di, aby to bol chyták K tomu int 21h som ti napísal, že si to máš nájsť. Hľadal si? Citácia: Spocitam ah+al a vyjde 82 a nie 2050 preco? Potiaľto dobre, ale to "spočítam"... ono to nie je, že spočítam. Ono je to "prilepím k sebe a prevediem z dvojkovej do desiatkovej sústavy". Citácia: mov [bx], al; ulozim do bx 2 a vyjde mi 2 no ma vyjst 0 Tu neukladáš do bx, čo sme sa naučili o hranatých zátvorkách? A na čo sa ťa pýtajú? Citácia: add ah, [bx+di]; pripocitam k 1 cislo 201 cize 202 co je zle a ma vyjst 36 A znovu tie hranaté zátvorky... a pozri sa aj čo sa píše v zadaní.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 24.11.2014 1:17 | |
|
EDI a ESI su indexove registre. 0 som tam dal preto lebo v prvom prikaze som tam ulozil 1 a potom som ho dekrementoval na 0. Int som nasiel ze sluzi na prerusenie procedury ale ja tam nemam proceduru. A tento prikaz dec di tam neviem naco vobec je. Tym spocitanim som myslel prilepim to je aj vidiet z toho co som spravil a nech prevediem 82 do hociktorej sustavy tak 2050 nevyjde. Pytaju sa co bude v bx cize vysledok vidim uz v tomto prikaze mov bx, offset Data1 a do [bx] ukladam na 0. adresu v pamäti cislo 2 A to posledne neviem na 200. adrese v pamäti mam 12 a na 201. adrese mam 34. Ta 200. patri bx a 201. di alebo obidve adresy patria len bx?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 24.11.2014 10:22 | |
|
Už ti odpovedal aj pcsiete na hojku, tak nebudem nijak obšírny Citácia: mov di, 1 mov dl, [R+di] dec di inc dl mov ah, 2 int 21h; Poriadne sa pozti na tú postuponosť príkazov a uvedom si, kedy pracuješ s di, kedy s dl a ktorý vlastne potrebuješ. A to int 21h si su už našiel? Nemáš hľadať int, to je interrupt, to ti veľmi nepomôže v tomto prípade. Daj do Googla "int 21h". (Áno, hádaš správne, 21h je tá procedúra) To lepenie k sebe, to máš takto: ah = 8 = 00001000 binárne al = 2 = 00000010 binárne Teraz to zlepím k sebe, takže z toho bude 0000 1000 0000 0010 binárne. A toto číslo preveď do desiatkovej. F1L1P píše: na 200. adrese v pamäti mam 12 a na 201. adrese mam 34. , čiže keď do bx dáš číslo 200h a potom pristúpiš na adresu [bx+di], keď v di je 1, čo tam bude? A to niečo sa pripočíta k ah.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 13.11.09 Prihlásený: 08.09.18 Príspevky: 133 Témy: 21 Bydlisko: SK | Napísal autor témy F1L1P: 24.11.2014 19:17 | |
|
Dakujem a co s takym prikladom
Ma tu vyjst 1 Je deklarovana premenna A DB "123"; je rozdiel ked pouzijem "" namiesto '' ? Co vypise nasledujuca postupnost instrukcii? mov dl,A; ulozim do dl 123 inc A; zvysim A na 124 mov ah,2; ulozim do ah 2 int 21h; tento prikaz vypisuje znak z dl na vystup ale ktory z 123?
|
|
| Stránka: 1 z 1
| [ Príspevkov: 27 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| dajte mi 1.lekciu k assembleru (hello world) v Assembler, C, C++, Pascal, Java | 20 | 3168 | 08.01.2008 13:24 euthanan | | 2 otazky v Redakčné systémy | 2 | 821 | 27.03.2007 18:34 koudy | | Domeny - otazky v Domény | 4 | 875 | 18.04.2010 17:46 JanoF | | pinnacle - otazky :) v Video programy | 14 | 1186 | 07.03.2007 10:15 Dzin | | Java otazky v Assembler, C, C++, Pascal, Java | 5 | 519 | 25.05.2011 22:21 MTK | | Pascal otazky v Assembler, C, C++, Pascal, Java | 9 | 629 | 17.01.2011 21:18 F3RY | | jQuery - otázky v JavaScript, VBScript, Ajax | 24 | 1230 | 09.02.2011 17:07 emer | | c- otazky v Assembler, C, C++, Pascal, Java | 28 | 1180 | 02.01.2011 20:15 reDo | | 3 otazky v Notebooky a netbooky | 2 | 436 | 09.08.2018 20:04 Xaltotun | | 2 otázky v HTML, XHTML, XML, CSS | 4 | 716 | 25.11.2007 7:56 delo101 | | 2 otazky v PHP, ASP | 2 | 739 | 13.08.2007 10:06 Tominator | | Responsive design otázky v HTML, XHTML, XML, CSS | 11 | 539 | 02.03.2016 21:52 hatto13 | | novy PC? otazky v PC zostavy | 5 | 493 | 29.05.2008 22:43 Jaro | | 3 blbe otazky v Biosy a ladenie výkonu | 2 | 903 | 03.01.2007 15:46 Fenius | | otazky ohladom recievru v Zvuk | 5 | 639 | 04.03.2008 23:26 Jaro | | TAKTOVANIE OTAZKY , HELP !! v Biosy a ladenie výkonu | 16 | 1375 | 08.07.2009 9:50 f4r0 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|