命令マップ



■命令マップ 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

----------------------------------------------------------------------


戻る