OBSAH WEBU
ČTĚTE!
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
temata:37-prog_jsi:main [2011/03/30 17:36] jasho |
temata:37-prog_jsi:main [2012/04/11 13:26] (aktuální) conyx [Programování v jazyku symbolických instrukcí] |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ~~ODT~~ | ||
+ | |||
=====Programování v jazyku symbolických instrukcí===== | =====Programování v jazyku symbolických instrukcí===== | ||
Řádek 10: | Řádek 12: | ||
*adresova, datova a kontrolni sbernice | *adresova, datova a kontrolni sbernice | ||
- | K významným registrům CPU patří střádač (Accumulator, A), registr ukazatele instrukcí (Instruction pointer register, IPR) a instrukční registr (Instruction register, IR). | + | K významným registrům CPU patří střádač (Accumulator, A), registr ukazatele instrukcí (Instruction pointer register, IP) a instrukční registr (Instruction register, IR). |
**Další registry procesorů pentium** | **Další registry procesorů pentium** | ||
Řádek 137: | Řádek 139: | ||
* väzba medzi segmentovými registrami a offsetom: | * väzba medzi segmentovými registrami a offsetom: | ||
{{:temata:37-prog_jsi:02_vazba.jpg|}} | {{:temata:37-prog_jsi:02_vazba.jpg|}} | ||
+ | * CS - Code Segment | ||
+ | * DS - Data Segment | ||
+ | * ES - Extra Segment | ||
+ | * FS - Extra Segment | ||
+ | * SS - Stack Segment | ||
+ | * BX, BP - báza (základná adresa v segmente) | ||
+ | * SI, DI - index pri prenose skupín dát | ||
+ | * displacement D8, D16 - relatívne posunutie ukazovateľa | ||
+ | * v podstate: | ||
+ | * pre adresu nejakého registra (DS, ES), offset je BX, prípadne môže byť zadaný ešte nejaký posun | ||
+ | * pre adresu inštrukcie v základnom nastavení použijete adresu CS:IP | ||
+ | * pre adresu zásobníku použijete adresu SS:SP, prípadne SS:BP | ||
+ | * | ||
+ | * príklad: | ||
+ | * CS=45F4h, SS=AB00h, DS=5541h, ES=1111h | ||
+ | * IP=2211h, SP=1FEOh, BX=3344h, BP=2244h, SI=1AD5h | ||
+ | * | ||
+ | * adresa inštrukcie: CS:IP = 45F40h + 2211h = 48151h | ||
+ | * adresa zásobníku: SS:SP = AB000h + 1FE0h = ACFE0h | ||
+ | * adresy operandov: | ||
+ | * [BX] => DS:[BX] = 55410h + 3344h = 58754h | ||
+ | * ES:[BX] => ES:[BX] = 11110h + 3344h = 14454h | ||
+ | * [BP+4] => SS:[BP+4] = AB00h + 2244h + 4h = AD248h | ||
+ | * [BX+SI+1] => DS:[BX+SI+1] = 55410h + 3344h + 01AD5h + 1h = 5A22Ah |