PA0
Article
- Why Docker
- How To Ask Questions The Smart Way
- vimtutor
- ssh
- 正则表达式
- git
- GDB
- tmux
- linux
- GPG GPG
- C C
顺时针法则
-
[10]: an array 10 of …
-
(): Once you meet one of brace, then a pair of them are omitted
-
*: pointer to …
-
(params): a function which receives params and returning …
-
const(at the begining): const
-
const: constant …
PA2
Step 1: Opcode
指令名
首先查阅i386 Appendix A(利用反汇编作为辅助),找到对应的编码 opcode_entry opcode_table 中添加
- opcode_entry类型: 函数指针decode encode 宽度width *
0x0F: Two-byte Group: 根据R/M code opcode 确定
指令类型(解码)
实现的Codes for Addressing Method: I, SI, r(XX,eXX), RM(E,G,C,M,R,S), O
根据配置解码,分类如下:
- unary: I, r, E
- G2E, E2G, I2E, I2r, SI2E
- 无解码 EX()
Codes for Operant Type:
- v: IDEX, EX
Step 2: 解码
decode.h 中增加声明 decode.c 中实现
Step 3: 执行
all-instr.h 中增加声明
在i386中相应地方查看具体实现说明
在相应c文件中利用rtl语句实现
实现没有实现的rtl语句