命令マップ
■命令マップ Ver0.01(001031)
12bit長命令
----------------------------------------------------------------------
inst im/adr
[0][0][0][0] [0][0][0][0][0][0][0][0]
0 0 0 0 #IM mov ax,#im
0 0 0 1 #IM mov bx,#im
0 0 1 0 adr mov ax,(adr)
0 0 1 1 adr mov bx,(adr)
0 1 0 0 adr mov (adr),ax
0 1 0 1 adr mov (adr),bx
0 1 1 0 #IM cmp ax,#im
0 1 1 1 #IM btst ax,#im
1 0 0 0 UNDEF
1 0 0 1 UNDEF
1 0 1 0 UNDEF
1 0 1 1 UNDEF
1 1 0 0 adr jmp adr
1 1 0 1 adr call adr
----------------------------------------------------------------------
mov ax,#im ax <- #im 0xx im[7..0] ax <- im
im:(0-FFH)
mov bx,#im bx <- #im 1xx im[7..0] bx <- im
im:(0-FFH)
mov ax,(adr) ax <- *adr 2xx adr[7..0] *(adr) -> ax
adr:(0-9)
mov ax,(adr) bx <- *adr 3xx adr[7..0] *(adr) -> ax
adr:(0-9)
mov (adr),ax *adr <- ax 4xx adr[7..0] ax -> *(adr)
adr:(0-9)
mov (adr),bx *adr <- bx 5xx adr[7..0] ax -> *(adr)
adr:(0-9)
cmp ax,#im ax - #im 6xx
btst ax,#im ax & #im 7xx
UNDEF 8xx
UNDEF 9xx
UNDEF Axx
UNDEF Bxx
jmp adr addr->pc Cxx adr[7..0] 注意(絶対アドレス)
call adr pc -> *(sp),sp++,addr->pc Dxx adr[7..0] 注意(絶対アドレス)
--------------------------------------------------------------------
inst op dest
[1][1][1][1]|[0] [0][0][0]|[0][0] [0][0]
<-0 0 0 0 0 0 x 0 ax <- 0
0 0 0 0 0 x 1 bx <- 0
<-ax 0 0 0 0 1 x 0 ax <- ax
0 0 0 0 1 x 1 bx <- ax
<-bx 0 0 0 1 0 x 0 bx <- ax
0 0 0 1 0 x 1 bx <- bx
not ax 0 0 0 1 1 x 0 ax <- !ax
0 0 0 1 1 x 1 bx <- !ax
not bx 0 0 1 0 0 x 0 ax <- !bx
0 0 1 0 0 x 1 bx <- !bx
ax+1 0 0 1 0 1 x 0 ax++
0 0 1 0 1 x 1 bx <- ax + 1
bx+1 0 0 1 1 0 x 0 ax <- bx + 1
0 0 1 1 0 x 1 bx++
ax-1 0 0 1 1 1 x 0 ax--
0 0 1 1 1 x 1 bx <- ax - 1
bx-1 0 1 0 0 0 x 0 ax <- bx - 1
0 1 0 0 0 x 1 bx--
ax+bx 0 1 0 0 1 x 0 ax += bx
0 1 0 0 1 x 1 bx = ax + bx
ax-bx 0 1 0 1 0 x 0 ax -= bx
0 1 0 1 0 x 1 bx = ax - bx
bx-ax 0 1 0 1 1 x 0 ax = bx - ax
0 1 0 1 1 x 1 bx -= ax
ax&bx 0 1 1 0 0 x 0 ax &= bx
0 1 1 0 0 x 1 bx &= ax
ax|bx 0 1 1 0 1 x 0 ax |= bx
0 1 1 0 1 x 1 bx |= ax
ax^bx 0 1 1 1 0 x 0 ax ^= bx
0 1 1 1 0 x 1 bx ^= ax
cmp ax,bx 1 0 0 0 0 x x ax - bx
btst ax,bx 1 0 0 0 1 x x ax & bx
----------------------------------------------------------------------
clr ax ax <- 0 F00
clr bx bx <- 0 F01
not ax ax = ~ax F0c
not bx bx = ~bx F11
inc ax ax++ F14
inc bx bx++ F19
dec ax ax-- F1c
dec bx bc-- F21
add ax,bx ax += bx F24
add bx,ax bx += ax F25
sub ax,bx ax -= bx F28
sub bx,ax bx -= ax F2d
and ax,bx ax &= bx F30
and bx,ax bx &= ax F31
or ax,bx ax |= bx F34
or bx,ax bx |= ax F35
xor ax,bx ax ^= bx F38
xor bx,ax bx ^= ax F39
cmp ax,bx ax - bx F40 /*only side effect for PSW*/
btst ax,bx ax & bx F44 /*only side effect for PSW*/
----------------------------------------------------------------------
UNDEF FAx
UNDEF FBx
seq if(Z)then skip F80
sne if(!Z)then skip F81
sgt if(?)then skip F82
sge if(?)then skip F83
slt if(?)then skip F84
sle if(?)then skip F85
sxx if(Z)then skip F86
sxx if(Z)then skip F87
sxx if(Z)then skip F88
sxx if(Z)then skip F89
sxx if(Z)then skip F8A
mov bx,ax bx <- ax F05 [0000][01|01]
mov ax,bx ax <- bx F08 [0000][10|00]
mov ax,flg ax <- flg F90
mov bx,flg bx <- flg F91
mov ax,(bx) ax <- *bx F92
mov bx,(ax) bx <- *ax F93
mov (ax),bx *ax <- bx F94
mov (bx),ax *bx <- ax F95
ret pc <- *(sp--) FE0
nop FF0
----------------------------------------------------------------------
戻る