📄 disasm_debug.v
字号:
$display("INC mem");
end
32'b0110110?????????????????????????: begin /* INS 1 */
ins_len = 1;
$display("INC");
end
32'b11001101????????????????????????: begin /* INT 2 */
ins_len = 2;
$display("INT");
end
32'b11001100????????????????????????: begin /* INT 1 */
ins_len = 1;
$display("INT");
end
32'b11001110????????????????????????: begin /* INTO 1 */
ins_len = 1;
$display("INTO");
end
32'b0000111100001000????????????????: begin /* INVD 2 */
ins_len = 2;
$display("INVD");
end
32'b0000111100000001???111??????????: begin /* INVLPG 3 */
ins_len = 3;
$display("INVLPG");
end
32'b11001111????????????????????????: begin /* IRET 1 */
ins_len = 1;
$display("IRET");
end
32'b0111????????????????????????????: begin /* JCC 1 */
ins_len = 1;
$display("JCC");
end
32'b000011111000????????????????????: begin /* JCC 3 */
ins_len = 3;
$display("JCC");
end
32'b11100011????????????????????????: begin /* JCXZ 2 */
ins_len = 2;
$display("JCXZ");
end
32'b11101011????????????????????????: begin /* JMP 2 short */
ins_len = 2;
$display("JMP");
end
32'b11101001????????????????????????: begin /* JMP 2 direct */
ins_len = 2;
$display("JMP");
end
32'b1111111111100???????????????????: begin /* JMP 2 reg indirect */
ins_len = 2;
$display("JMP r");
end
32'b11111111???100??????????????????: begin /* JMP 2 mem indirect */
ins_len = 2;
$display("JMP mem");
end
32'b11101010????????????????????????: begin /* JMP 2 direct intersegment */
ins_len = 2;
$display("JMP #");
end
32'b11111111???101??????????????????: begin /* JMP 2 indirect intersegment */
ins_len = 2;
$display("JMP #");
end
32'b10011111????????????????????????: begin /* LAHF 1 */
ins_len = 1;
$display("LAHF");
end
32'b000011110000001011??????????????: begin /* LAR 3 */
ins_len = 3;
$display("LAR");
end
32'b0000111100000010????????????????: begin /* LAR 3 */
ins_len = 3;
$display("LAR");
end
32'b11000101????????????????????????: begin /* LDS 2 */
ins_len = 2;
$display("LDS");
end
32'b10001101????????????????????????: begin /* LEA 2 */
ins_len = 2;
$display("LEA");
end
32'b11001001????????????????????????: begin /* LEAVE 1 */
ins_len = 1;
$display("LEAVE");
end
32'b11000100????????????????????????: begin /* LES 2 */
ins_len = 2;
$display("LES");
end
32'b0000111110110100????????????????: begin /* LFS 3 */
ins_len = 3;
$display("LFS");
end
32'b0000111100000001???010??????????: begin /* LGDT 3 */
ins_len = 3;
$display("LGDT");
end
32'b0000111110110101????????????????: begin /* LGS 3 */
ins_len = 3;
$display("LGS");
end
32'b0000111100000001???011??????????: begin /* LLIDT 3 */
ins_len = 3;
$display("LLIDT");
end
32'b000011110000000011010???????????: begin /* LDTR 3 from reg */
ins_len = 3;
$display("LDTR reg");
end
32'b0000111100000000???010??????????: begin /* LDTR 3 from mem */
ins_len = 3;
$display("LDTR mem");
end
32'b000011110000000111110???????????: begin /* LMSW 3 from reg */
ins_len = 3;
$display("LMSW r");
end
32'b0000111100000001???110??????????: begin /* LMSW 3 from mem */
ins_len = 3;
$display("LMSW mem");
end
32'b11110000????????????????????????: begin /* LOCK 1 */
ins_len = 1;
$display("LOCK");
end
32'b1010110?????????????????????????: begin /* LODSL 1 */
ins_len = 1;
$display("LODSL");
end
32'b11100010????????????????????????: begin /* LOOP 2 */
ins_len = 2;
$display("LOOP");
end
32'b11100001????????????????????????: begin /* LOOPZ 2 */
ins_len = 2;
$display("LOOPZ");
end
32'b11100000????????????????????????: begin /* LOOPNZ 2 */
ins_len = 2;
$display("LOOPNZ");
end
32'b000011110000001111??????????????: begin /* LSL 3 */
ins_len = 3;
$display("LSL");
end
32'b0000111100000011????????????????: begin /* LSL 3 */
ins_len = 3;
$display("LSL");
end
32'b0000111110110010????????????????: begin /* LSS 3 */
ins_len = 3;
$display("LSS");
end
32'b000011110000000011011???????????: begin /* LTR 3 from reg */
ins_len = 3;
$display("LTR r");
end
32'b0000111100000000???011??????????: begin /* LTR 3 from mem */
ins_len = 3;
$display("LTR mem");
end
32'b1000100?11??????????????????????: begin /* MOV 2 reg1 to reg2 */
ins_len = 2;
$display("MOV r1,r2");
end
32'b1000101?11??????????????????????: begin /* MOV 2 reg2 to reg1 */
ins_len = 2;
$display("MOV r2,r1");
end
32'b1000101?????????????????????????: begin /* MOV 2 mem to reg */
casex (opcode[23:22])
2'b00: begin
ins_len = 2;
$display("MOV mem,[r]");
end
2'b01: begin
ins_len = 3;
$display("MOV mem,[r] + %h", opcode[15:8]);
end
2'b10: begin
ins_len = 4;
$display("MOV mem,[r]+ %h", opcode[15:0]);
end
2'b11: begin
ins_len = 2;
$display("MOV mem,[er]");
end
endcase
end
32'b1000100?????????????????????????: begin /* MOV 2 reg to mem */
ins_len = 2;
$display("MOV r,mem");
end
32'b110001111000????????????????????: begin /* MOV 3 immediate reg */
ins_len = 3;
$display("MOV #,r");
end
32'b1011????????????????????????????: begin /* MOV 2 immediate to reg */
if(opcode[24]) begin
ins_len = 3;
$display("MOV r,%h", opcode[23:8]);
end
else begin
ins_len = 5;
$display("MOV r,%h", {opcode[23:0],opcode2[31:24]});
end
end
32'b1100011????000??????????????????: begin /* MOV 3 immediate to mem */
ins_len = 3;
$display("MOV #,mem");
end
32'b1010000?????????????????????????: begin /* MOV 2 mem to AL,AX,EAX */
ins_len = 2;
$display("MOV mem,EAX");
end
32'b1010001?????????????????????????: begin /* MOV 2 AL,AX,EAX to mem */
ins_len = 2;
$display("MOV EAX,mem");
end
32'b000011110010001011000???????????: begin /* MOV 3 CRO form reg */
ins_len = 3;
$display("MOV CR0,r");
end
32'b000011110010001011010???????????: begin /* MOV 3 CR2 from reg */
ins_len = 3;
$display("MOV CR2,r");
end
32'b000011110010001011011???????????: begin /* MOV 3 CR3 from reg */
ins_len = 3;
$display("MOV CR3,r");
end
32'b000011110010001011100???????????: begin /* MOV 3 CR4 from reg */
ins_len = 3;
$display("MOV CR4,r");
end
32'b000011110010000011??????????????: begin /* MOV 3 reg form CR0-CR4 */
ins_len = 3;
$display("MOV r,CRx");
end
32'b000011110010001111??????????????: begin /* MOV 3 DR0-DR3 form reg */
ins_len = 3;
$display("MOV DRx,r");
end
32'b000011110010000111??????????????: begin /* MOV 3 reg from DR6-DR7 */
ins_len = 3;
$display("MOV r,DRx");
end
32'b1000111011??????????????????????: begin /* MOV 2 reg to segment reg */
ins_len = 2;
$display("MOV r,r");
end
32'b1000111011??????????????????????: begin /* MOV 2 reg to SS */
ins_len = 2;
$display("MOV r,SS");
end
32'b10001110????????????????????????: begin /* MOV 2 mem to segment reg */
ins_len = 2;
$display("MOV mem,r");
end
32'b10001110????????????????????????: begin /* MOV 2 mem to SS */
ins_len = 2;
$display("MOV mem,SS");
end
32'b1000110011??????????????????????: begin /* MOV 2 segment reg to reg */
ins_len = 2;
$display("MOV sr,r");
end
32'b10001100????????????????????????: begin /* MOV 2 segment reg to mem */
ins_len = 2;
$display("MOV sr,mem");
end
32'b1010010?????????????????????????: begin /* MOVS 1 */
ins_len = 1;
$display("MOVS");
end
32'b000011111011111?11??????????????: begin /* MOVSX 3 reg2 to reg1 */
ins_len = 3;
$display("MOVSX r2,r1");
end
32'b000011111011111?????????????????: begin /* MOVSX 3 mem to reg */
ins_len = 3;
$display("MOVSX mem,r");
end
32'b000011111011011?11??????????????: begin /* MOVZX 3 reg2 to reg1 */
ins_len = 3;
$display("MOVZX r2,r1");
end
32'b000011111011011?????????????????: begin /* MOVZX 3 mem to reg */
ins_len = 3;
$display("MOVZX mem,r");
end
32'b1111011?11100???????????????????: begin /* MUL 2 AL,AX,EAX with reg */
ins_len = 2;
$display("MUL EAX,r");
end
32'b1111011????100??????????????????: begin /* MUL 2 AL,AX,EAX with mem */
ins_len = 2;
$display("MUL EAX,mem");
end
32'b1111011?11011???????????????????: begin /* NEG 2 reg */
ins_len = 2;
$display("NEG r");
end
32'b1111011????011??????????????????: begin /* NEG 2 mem */
ins_len = 2;
$display("NEG mem");
end
32'b10010000????????????????????????: begin /* NOP 1 */
ins_len = 1;
$display("NOP");
end
32'b000011110001111111000???????????: begin /* NOP 3 reg */
ins_len = 3;
$display("NOP reg");
end
32'b0000111100011111???000??????????: begin /* NOP 3 mem */
ins_len = 3;
$display("NOP mem");
end
32'b1111011?11010???????????????????: begin /* NOT 2 reg */
ins_len = 2;
$display("NOT r");
end
32'b1111011????010??????????????????: begin /* NOT 2 mem */
ins_len = 2;
$display("NOT mem");
end
32'b0000100?11??????????????????????: begin /* OR 2 reg1 to reg2 */
ins_len = 2;
$display("OR r1,r2");
end
32'b0000101?11??????????????????????: begin /* OR 2 reg2 to reg1 */
ins_len = 2;
$display("OR r2,r1");
end
32'b0000101?????????????????????????: begin /* OR 2 mem to reg */
ins_len = 2;
$display("OR mem,r");
end
32'b0000100?????????????????????????: begin /* OR 2 reg to mem */
ins_len = 2;
$display("OR r,mem");
end
32'b100000??11001???????????????????: begin /* OR 3 immediate to reg */
ins_len = 3;
$display("OR #,r");
end
32'b0000110?????????????????????????: begin /* OR 2 immediate to AL,AX,EAX */
ins_len = 3;
$display("OR #,EAX");
end
32'b100000?????001??????????????????: begin /* OR 3 immediate to mem */
ins_len = 3;
$display("OR #,mem");
end
32'b1110011?????????????????????????: begin /* OUT 2 fixed port */
ins_len = 2;
$display("OUT port");
end
32'b1110111?????????????????????????: begin /* OUT 1 varable port */
ins_len = 1;
$display("OUT");
end
32'b0110111?????????????????????????: begin /* OUTS 1 */
ins_len = 1;
$display("OUTS");
end
32'b1000111111000???????????????????: begin /* POP 2 reg */
ins_len = 2;
$display("POP r");
end
32'b01011???????????????????????????: begin /* POP 1 reg */
ins_len = 1;
$display("POP r");
end
32'b10001111???000??????????????????: begin /* POP 2 mem */
ins_len = 2;
$display("POP mem");
end
32'b000??111????????????????????????: begin /* POP 1 segment reg DS,ES */
ins_len = 1;
$display("POP sr");
end
32'b000??111????????????????????????: begin /* POP 1 segment reg SS */
ins_len = 1;
$display("POP sr");
end
32'b0000111110???001????????????????: begin /* POP 2 segment reg FS,GS */
ins_len = 2;
$display("POP sr");
end
32'b01100001????????????????????????: begin /* POPA 1 */
ins_len = 1;
$display("POPA");
end
32'b10011101????????????????????????: begin /* POPF 1 */
ins_len = 1;
$display("POPF");
end
32'b1111111111110???????????????????: begin /* PUSH 2 reg */
ins_len = 2;
$display("PUSH");
end
32'b01010???????????????????????????: begin /* PUSH 1 reg */
ins_len = 1;
$display("PUSH r");
end
32'b11111111???110??????????????????: begin /* PUSH 2 mem */
ins_len = 2;
$display("PUSH mem");
end
32'b011010?0????????????????????????: begin /* PUSH 2 immediate */
ins_len = 2;
$display("PUSH #");
end
32'b000??110????????????????????????: begin /* PUSH 1 segment reg CS,DS,ES,SS */
ins_len = 1;
$display("PUSH sr");
end
32'b0000111110???000????????????????: begin /* PUSH 2 segment reg FS,GS */
ins_len = 2;
$display("PUSH sr");
end
32'b01100000????????????????????????: begin /* PUSHA 1 */
ins_len = 1;
$display("PUSHA");
end
32'b10011100????????????????????????: begin /* PUSHF 1 */
ins_len = 1;
$display("PUSHF");
end
32'b1101000?11010???????????????????: begin /* RCL 2 reg by 1 */
ins_len = 2;
$display("RCL r");
end
32'b1101000????010??????????????????: begin /* RCL 2 mem by 1 */
ins_len = 2;
$display("RCL mem");
end
32'b1101001?11010???????????????????: begin /* RCL 2 reg by CL */
ins_len = 2;
$display("RCL r");
end
32'b1101001????010??????????????????: begin /* RCL 2 mem by CL */
ins_len = 2;
$display("RCL mem");
end
32'b1100000?11010???????????????????: begin /* RCL 3 reg by immediate */
ins_len = 3;
$display("RCL r");
end
32'b1100000???010???????????????????: begin /* RCL 3 mem by immediate */
ins_len = 3;
$display("RCL mem");
end
32'b1101000?11011???????????????????: begin /* RCR 2 reg by 1 */
ins_len = 2;
$display("RCR r");
end
32'b1101000????011??????????????????: begin /* RCR 2 mem by 1 */
ins_len = 2;
$display("RCR mem");
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -