english
version "1.0"
identify "xyz"
#: This module implements the 8051 micrcontroller instruction codes.
module code_types
define code #: Executable code
variant type code_type
acall code_address #: ACALL address
add_a_rn rn #: ADD A, Rn
add_a_direct direct #: ADD A, direct
add_a_ri ri #: ADD A, @Ri
add_a_data immediate #: ADD A, #data
addc_a_rn rn #: ADDC A, Rn
addc_a_direct direct #: ADDC A, direct
addc_a_ri ri #: ADDC A, @Ri
addc_a_data immediate #: ADDC A, #data
ajmp code_address #: AJMP address
anl_a_rn rn #: ANL A, Rn
anl_a_direct direct #: ANL A, direct
anl_a_ri ri #: ANL A, @Ri
anl_a_data immediate #: ANL A, #data
anl_direct_a direct #: ANL direct, A
anl_direct_data direct_immediate #: ANL direct, #data
anl_c_bit bit_address #: ANL C, bit
anl_c_nbit bit_address #: ANL C, /bit
cjne_a_direct_rel direct_relative #: CJNE A, direct, rel
cjne_a_data_rel immediate_relative #: CJNE A, #data, rel
cjne_rn_data_rel rn_immediate_relative #: CJNE Rn, #data, rel
cjne_ri_data_rel ri_immediate_relative #: CJNE @Ri, #data, rel
clr_a bogus #: CLR A
clr_c bogus #: CLR C
clr_bit bit_address #: CLR bit
cpl_a bogus #: CPL A
cpl_c bogus #: CPL C
cpl_bit bit_address #: CPL bit
da bogus #: DA
dec_a bogus #: DEC A
dec_rn rn #: DEC Rn
dec_direct direct #: DEC direct
dec_ri ri #: DEC Rn
div bogus #: DIV AB
djnz_rn_rel rn_relative #: DJNZ Rn, rel
djnz_direct_rel direct_relative #: DJNZ direct, rel
inc_a bogus #: INC A
inc_rn rn #: INC Rn
inc_direct direct #: INC direct
inc_ri ri #: INC Rn
inc_dptr bogus #: INC dptr
jb_bit_rel bit_relative #: JB bit, rel
jbc_bit_rel bit_relative #: JBC bit, rel
jc_rel relative #: JC relative
jmp_a_dptr bogus #: JMP @A+DPTR
jnb_bit_rel bit_relative #: JNP bit, rel
jnc_rel relative #: JNC relative
jnz_rel relative #: JNZ relative
jz_rel relative #: JZ relative
lcall code_address #: LCALL address
ljmp code_address #: LJMP address
mov_a_rn rn #: MOV A, Rn
mov_a_direct direct #: MOV A, direct
mov_a_ri ri #: MOV A, @Ri
mov_a_data immediate #: MOV A, #data
mov_rn_a rn #: MOV Rn, A
mov_rn_direct rn_direct #: MOV Rn, direct
mov_rn_data rn_immediate #: MOV Rn, #data
mov_direct_a direct #: MOV direct, A
mov_direct_rn direct_rn #: MOV direct, Rn
mov_direct_direct direct_direct #: MOV direct, direct
mov_direct_ri direct_ri #: MOV direct, @Ri
mov_direct_data direct_immediate #: MOV direct, #data
mov_ri_a ri #: MOV @Ri, A
mov_ri_direct ri_direct #: MOV @Ri, direct
mov_ri_data ri_immediate #: MOV @Ri, #data
mov_c_bit bit_address #: MOV C, bit
mov_bit_c bit_address #: MOV bit, C
mov_dptr_data16 immediate16 #: MOV DPTR, data16
movc_a_dptr bogus #: MOVC A, @A+DPTR
movc_a_pc bogus #: MOVC A, @A+PC
movx_a_ri ri #: MOVX A, @Ri
movx_a_dptr bogus #: MOVX A, @DPTR
movx_ri_a ri #: MOVX @Ri, A
movx_dptr_a bogus #: MOVX @DPTR, A
mul_ab bogus #: MUL AB
nop bogus #: NOP
orl_a_rn rn #: ORL A, Rn
orl_a_direct direct #: ORL A, direct
orl_a_ri ri #: ORL A, @Ri
orl_a_data immediate #: ORL A, #data
orl_direct_a direct #: ORL direct, A
orl_direct_data direct_immediate #: ORL direct, #data
orl_c_bit bit_address #: ORL C, bit
orl_c_nbit bit_address #: ORL C, /bit
pop_direct direct #: POP direct
push_direct direct #: PUSH direct
ret bogus #: RET
reti bogus #: RETI
rl_a bogus #: RL A
rlc_a bogus #: RLC A
rr_a bogus #: RR A
rrc_a bogus #: RRC A
setb_c bogus #: SETB C
setb_bit bit_address #: SETB bit
sjmp_rel relative #: SJMP rel
sbbc_a_rn rn #: SBBC A, Rn
sbbc_a_direct direct #: SBBC A, direct
sbbc_a_ri ri #: SBBC A, @Ri
sbbc_a_data immediate #: SBBC A, #data
swap_a bogus #: SWAP A
xch_a_rn rn #: XCH A, Rn
xch_a_direct direct #: XCH A, direct
xch_a_ri ri #: XCH A, @Ri
xchd_a_ri ri #: XCHD A, Ri
xrl_a_rn rn #: XRL A, Rn
xrl_a_direct direct #: XRL A, direct
xrl_a_ri ri #: XRL A, @Ri
xrl_a_data immediate #: XRL A, #data
xrl_direct_a direct #: XRL direct, A
xrl_direct_data direct_immediate #: XRL direct, #data
generate allocate, erase, print
define bit_relative #: Bit and relative operands
record
bit_address bit_address #: Bit address
relative relative #: Relative address
generate allocate, erase, print
define code_address #: Absolute code address opperand
record
address unsigned #: Actual code address (no masking)
instruction instruction #: Target instruction
generate allocate, erase, print
define direct #: 8-bit direct operand
record
address unsigned #: The actual address value
generate allocate, erase, print
define direct_direct #: Two direct operands
record
source direct #: Source address
destination direct #: Destination address
generate allocate, erase, print
define direct_immediate #: Direct and immediate operands
record
direct direct #: 8-bit direct address
immediate immediate #: 8-bit immediate data
generate allocate, erase, print
define direct_relative #: Direct and relative operands
record
direct direct #: 8-bit direct address
relative relative #: 8-bit relative address
generate allocate, erase, print
define direct_ri #: Direct and @Ri operands
record
direct direct #: 8-bit direct address
ri ri #: Register indirect
generate allocate, erase, print
define direct_rn #: Direct and register operands
record
direct direct #: 8-bit direct address
rn rn #: Register
generate allocate, erase, print
define immediate #: 8-bit immediate data
record
value unsigned #: 8-bit value (0-255)
generate allocate, erase, print
define immediate16 #: 16-bit immediate data operand
record
value unsigned #: 16-bit data value (0-0xffff)
generate allocate, erase, print
define immediate_relative #: Immediate and relative operands
record
immediate immediate #: 8-bit immediate value
relative relative #: 8-bit relative address
generate allocate, erase, print
define instruction #: One executable instruction
record
address unsigned #: Address of instruction
code code #: Code for instruction
next instruction
generate allocate, erase, print
define relative #: Relative address operands
record
address unsigned #: Actual code address (no masking)
instruction instruction #: Target instruction
offset unsigned #: 8-bit offset from instruction end
generate allocate, erase, print
define ri #: Register indirect operand
record
number unsigned #: Register number
generate allocate, erase, print
define ri_immediate_relative #: Reg. indir., immediate, & rel. ops
record
ri ri #: Register indirect
immediate unsigned #: 8-bit immediate value
relative relative #: 8-bit relative address
generate allocate, erase, print
define ri_direct #: Reg. indirect and direct operands
record
ri ri #: Register indirect
direct direct #: 8-bit direct address
generate allocate, erase, print
define ri_immediate #: Reg. indirect and immediate operands
record
ri ri #: Register indirect
immediate immediate #: 8-bit immeiate value
generate allocate, erase, print
define rn
record
number unsigned #: Register number (0-7)
generate allocate, erase, print
define rn_immediate_relative #: Register, immediate, & rel. operands
record
rn rn #: Register
immediate immediate #: 8-bit immediate data
relative relative #: 8-bit relative address
generate allocate, erase, print
define rn_direct #: Register & direct operands
record
rn rn #: Register
direct direct #: 8-bit direct address
generate allocate, erase, print
define rn_immediate
record
rn rn #: Register
immediate immediate #: 8-bit immediate data
generate allocate, erase, print
define rn_relative
record
rn rn #: Register
relative relative #: 8-bit relative address
generate allocate, erase, print