This commit is contained in:
Jonathan Campbell
2020-06-05 18:21:59 -07:00
parent a6ede39e8b
commit 67e0b41eb0

View File

@@ -29,6 +29,7 @@ charset_encoding "UTF-8"; /* default */
flags(...): specific flags (bitmask)
stackp: stack pointer (SP/ESP)
basep: base pointer (BP/EBP)
stackdataw: word value on stack [SS:stackp]
ip: instruction pointer (IP/EIP) */
/* avoid copy-pasta */
@@ -40,6 +41,18 @@ common opcode "ADD" param(dst,src) {
output dst; /* writes dst */
}
common opcode "PUSH" param(src) {
modifies stackp; /* stackp -= word size */
output stackdataw;
input src;
}
common opcode "POP" param(dst) {
modifies stackp; /* stackp += word size */
input stackdataw;
output src;
}
opcode sequence(0x00 mrm) name "ADD" { /* ADD r/m, reg */
common opcode "ADD" param(rmb,regb);
}
@@ -64,3 +77,11 @@ opcode sequence(0x05 immw) name "ADD" { /* ADD [E]AX, imm */
common opcode "ADD" param(accum,immw);
}
opcode sequence(0x06) name "PUSH" { /* PUSH ES */
common opcode "PUSH" param(ES);
}
opcode sequence(0x06) name "PUSH" { /* POP ES */
common opcode "POP" param(ES);
}