OUTS/OUTSB/OUTSW - výstup bytového/slovního řetezce na port
Verze z 10. 1. 2013, 16:27, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky)
- Instrukce
- OUTS/OUTSB/OUTSW - výstup bytového/slovního řetezce na port
- Časování
- 5 (80286), 7 (80386)
- Popis
- Instrukce OUT přesouvá bytový nebo slovní rětezec adresovaný v paměti DS:SI na port specifikovaný adresou v DX. Druhý operand instrukce OUT určuje typ přesouvaných dat (slova nebo byty). SI je automaticky inkrementován o 1 při DF=0. Při DF=1 je SI dekrementován o 1. Přirustek je 1 pro bytové a 2 pro slovní operandy.
- Syntaxe
- OUTS port, source_string
- OUTSB (žádné operandy)
- OUTSW (žádné operandy)
- Ovlivňuje příznaky
- žádné
- Nedefinované příznaky
- žádné
- Výjimky v privilegovaném módu
- Jestliže je hodnota CPL (Current Privilege Level) větší nebo rovná hodnote IOPL (Input/Output Privilege Level), je generována všeobecná výjimka porušení ochrany paměti. Táto výjimka může být generována také v případe, že CS, DS nebo ES obsahuje neplatnou efektívni adresu operandu. Jestliže segment CS obsahuje neplatnou adresu, je generována výjimka "chyba zasobniku".
- Výjimky v reálnem módu
- Jestliže je slovní operand na offsetu 0FFFFH, je generováno přerušení INT 13.
- Poznámka pro 80386
- Šírka slova je 32 bitů. Adresy operandu v paměti jsou vytváreny ze 32-bitové efektívni adresy. Šestnactibitová část adresy je brána z registru DX. 32-bitová specifikace neovlivní adresu I/O portu. Délka řetezce je brána z registru ECX.
- Příklad
OUTS DX, BYT_WRD OUTS DX, WRD_STRNG OUTSB OUTSW