Ассемблер Эльбрус


| Следующая

https://gist.github.com/xTibor/faedf32245873cd0160cc7d3fa7c0076

 e2k.txt
  == Elbrus 2000 (e2k) instruction set mnemonics ==
   
  aas ?
  aaurr ?
  aaurrd ?
  aaurrq ?
  aaurw ?
  aaurwd ?
  aaurwq ?
  abn ?
  abp ?
  addd addition
  adds addition
  alc ?
  als ?
  andd binary and
  andnd binary and
  andns binary and
  ands binary and
  bitrevd bit reverse
  bitrevs bit reverse
  call subroutine call
  cmpandedb compare
  cmpbdb compare
  cmpbedb compare
  cmpbsb compare
  cmpedb compare
  cmpesb compare
  cmpldb compare
  cmpledb compare
  cmplsb compare
  ct branch
  disp ?
  eap ?
  fapb ?
  flushc ?
  flushr ?
  flushts ?
  getfd ?
  getsp ?
  gettagd ?
  ibranch ?
  ipd ?
  ld load
  ldd load
  ldh load
  ldrd load
  ldw load
  lzcntd count leading zeroes
  lzcnts count leading zeroes
  mmurr mmu read
  mmurw mmu write
  movfi move
  movtd move
  movtq move
  movts move
  nop no operation
  ord binary or
  ors binary or
  popcntd count ones
  popcnts count ones
  puttagd puts a tag on a register
  puttags puts a tag on a register
  return subroutine return
  rrd ?
  rrs ?
  rwd ?
  rws ?
  sard ?
  setbn ?
  setbp ?
  setwd ?
  shld shift left
  shls shift left
  shrd shift right
  shrs shift right
  st store
  std store
  sth store
  strd store
  stw store
  subd subtract
  sxt ?
  wait ?
  xord exclusive or
  xors exclusive or
  ...
   
  Load and store instructions can operate on 8/16/32/64/128 bit integers. (b/h/w/d/q suffixes)
  "s" suffix: signed operation?
   
  == Elbrus 2000 (e2k) Registers ==
   
  ? dr0 - dr7
  ? r0 - r31
  ? g0 - g31
  ctpr1
  ctpr2
  ctpr3
  lsr
  ilcr
  rwp read/write pointer
  rwap read/write array pointer
  rwsap read/write stack array pointer
  cud compilation unit descriptor
  gd compilation unit globals descriptor
  oscud os compilation unit descriptor
  osgd os compilation unit globals descriptor
  psp procedure stack pointer
  lsr loop status register
  pcsp procedure chain stack pointer
  cwd current chain registers window descriptor
  usbr user stack base register
  sbr user stack base register
  usd non-protected user stack descriptor
  pusd protected user stack descriptor
  wd current window descriptor
  ctpr control transfer preparation register
  tir trap info register
  upsr user processor status register
  idr processor identification register
  pfpfr packed floating point flag register
  fpcr floating point control register
  fpsr floating point status register
  pshtp ?
  cr0 ? chain register
  cr1 ? chain register
  ...
   
  === Elbrus 2000 (e2k) stacks ===
   
  Three stacks:
  * chain stack
  * user stack
  * argument stack