UOUT *(PA),loc16
6-367
Example
; IORegA address = 0x0300;
; IOREgB address = 0x0301;
; IOREgC address = 0x0302;
; IORegA = 0x0000;
; IORegB = 0x0400;
; IORegC = VarA;
; if( IORegC = 0x2000 )
; IORegC = 0x0000;
IORegA .set 0x0300 ; Define IORegA address
IORegB .set 0x0301 ; Define IORegB address
IORegC .set 0x0302 ; Define IORegC address
MOV @AL,#0 ; AL = 0
UOUT *(IORegA),@AL ; IOspace[IORegA] = AL
MOV @AL,#0x0400 ; AL = 0x0400
UOUT *(IORegB),@AL ; IOspace[IORegB] = AL
OUT *(IO-
RegC),@VarA
; IOspace[IORegC] = VarA
IN @AL,*(IORegC) ; AL = IOspace[IORegC]
CMP @AL,#0x2000 ; Set flags on (AL − 0x2000)
SB $10,NEQ ; Branch if not equal
MOV @AL,#0 ; AL = 0
UOUT *(IORegC),@AL ; IOspace[IORegC] = AL
$10: