LOCK - aktivuj signál BUS LOCK

Z Delphi & Pascal (česká wiki)
Verze z 4. 1. 2013, 18:02, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno L,M)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání
Instrukce
LOCK - aktivuj signál BUS LOCK
Časování
0
Popis
Prefix LOCK před instrukcí vyjadruje, že oblast paměti specifikována operandem instrukce instruction bude zablokována. Toho je dosaženo aktivací signálu BUS LOCK procesoru 80386. Oblast paměti zůstava ve skutečnosti zablokována a protektována, dokud procesor nevykoná instrukci jež odblokuje paměťovou oblast stejnou s oblastí specifikovanou druhým operandem instrukce LOCK. Instrukce u 80386 jež mohou mít prefix LOCK jsou nasledujíci:
  • BT,BTS,BTR,BTC - pamet, registr/bezprostrední operand
  • XCG - pamet, registr
  • XCG - registr, pamet
  • ADC,SUB,ADC,SBB - pamet,registr/bezprostrední operand
  • OR,XOR,AND - pamet, registr/bezprostrední operand
  • NEG,INC,DEC,NOT - pamet


Syntaxe
LOCK instruction, operand_type


Ovlivňuje příznaky
žádné


Nedefinované příznaky
žádné


Výjimky v privilegovaném módu
Je generována všeobecná výjimka porušení ochrany paměti v případe že I/O privilegovaná úroveň je nižší než aktuálni privilegovaná úroveň.


Poznámka pro 80386
Blokovací funkce u 80386 jsou podmnožinou blokovacích funkcí u 8086 a 80286. Aplikace psané pro 8086 a 80286 tedy nemusí probíhat korektně na 80386.


Příklad
LOCK XCG MEM_WRD,AX