Test w flag and print with the bytes in comments
This commit is contained in:
parent
f67f6de0b6
commit
86428f0263
@ -29,7 +29,7 @@ registers := [8]Register {
|
||||
main :: proc() {
|
||||
ax := registers[0]
|
||||
ax.value.full = 52428
|
||||
f,err := os.open("./asm_files/01-01-38.bin")
|
||||
f,err := os.open(len(os.args) > 1 ? os.args[1] : "./asm_files/01-01-38.bin")
|
||||
if err != os.ERROR_NONE {
|
||||
os.exit(1)
|
||||
}
|
||||
@ -45,18 +45,28 @@ main :: proc() {
|
||||
// mov dx, bx
|
||||
|
||||
read_next := false
|
||||
src_dst := true
|
||||
is_word := false
|
||||
prev :u8 = 0
|
||||
fmt.println("bits 16\n")
|
||||
for b in data {
|
||||
if read_next {
|
||||
mod := (b & 0b11000000) >> 6
|
||||
reg := (b & 0b00111000) >> 3
|
||||
rm := b & 0b00000111
|
||||
fmt.printfln("mov %s, %s", registers[rm].fullname, registers[reg].fullname)
|
||||
src_name := is_word ? registers[reg].fullname : registers[reg].bytename
|
||||
dst_name := is_word ? registers[rm].fullname : registers[rm].bytename
|
||||
fmt.printfln("mov %s, %s ;; %b %b", dst_name, src_name, prev, b)
|
||||
read_next = false
|
||||
continue
|
||||
}
|
||||
if b == 0b10001001 {
|
||||
read_next = true
|
||||
continue
|
||||
}
|
||||
is_word = true
|
||||
} else if b == 0b10001000 {
|
||||
read_next = true
|
||||
is_word = false
|
||||
}
|
||||
prev = b
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user