zayac / hera-mcst

Automatically exported from code.google.com/p/hera-mcst
0 stars 0 forks source link

#ASM#wrong encoding #14

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
assembler, который я скачивал 3 апреля работал 
хорошо. Сейчас появилось много ошибок 
например:
    тест arif.s:
lsl %r11, %r7
lsl %r9, %r14
lsr %r11, %r7
lsr %r9, %r14
lsl8 %r11, %r7
lsl8 %r9, %r14
lsr8 %r11, %r7
lsr8 %r9, %r14
asl %r11, %r7
asl %r9, %r14
asr %r11, %r7
asr %r9, %r14
return

$ ./assembler arif.s
lsl %r11, %r7           15111
lsl %r9, %r14           14606
lsr %r11, %r7           15127
lsr %r9, %r14           14622
lsl8 %r11, %r7          14347
lsl8 %r9, %r14          14345
lsr8 %r11, %r7          14363
lsr8 %r9, %r14          14361
asl %r11, %r7           15175
asl %r9, %r14           14670
asr %r11, %r7           15191
asr %r9, %r14           14686
return          4369
(уже здесь с пятой строчки начинаются 
ошибки: 14347 - это не верно)

$ ./disassembler arif.o
read successefull!
disasm:
0x390e  LSL r9, r14
0x3b17  LSR r11, r7
0x391e  LSR r9, r14
0x380b  LSL r8, r11
0x3809  LSL r8, r9
0x381b  LSR r8, r11
0x3819  LSR r8, r9
0x3b47  ASL r11, r7
0x394e  ASL r9, r14
0x3b57  ASR r11, r7
0x395e  ASR r9, r14
0x1111  RETURN
(видно что содержимое объектника не 
соответствует тому, что пишет assembler в 
консоль)

Всё тоже самое выполним со старым 
ассемблером:
$ ./assembler arif.s
1) lsl %r11, %r7 -> 15111
2) lsl %r9, %r14 -> 14606
3) lsr %r11, %r7 -> 15127
4) lsr %r9, %r14 -> 14622
5) lsl8 %r11, %r7 -> 15143
6) lsl8 %r9, %r14 -> 14638
7) lsr8 %r11, %r7 -> 15159
8) lsr8 %r9, %r14 -> 14654
9) asl %r11, %r7 -> 15175
10) asl %r9, %r14 -> 14670
11) asr %r11, %r7 -> 15191
12) asr %r9, %r14 -> 14686
13) return -> 4369
./tarif.s is translated successfully

$ ./disassembler arif.o
read successefull!
disasm:
0x3b07  LSL r11, r7
0x390e  LSL r9, r14
0x3b17  LSR r11, r7
0x391e  LSR r9, r14
0x3b27  LSL8 r11, r7
0x392e  LSL8 r9, r14
0x3b37  LSR8 r11, r7
0x393e  LSR8 r9, r14
0x3b47  ASL r11, r7
0x394e  ASL r9, r14
0x3b57  ASR r11, r7
0x395e  ASR r9, r14
0x1111  RETURN
(без ошибок)

Кстати сделайте пожалуйста чтобы assembler 
писал в консоль не десятичные числа, а 
шеснадцатеричные.

Original issue reported on code.google.com by stepnovd...@gmail.com on 10 Apr 2011 at 4:42

GoogleCodeExporter commented 9 years ago
Последняя просьба, разумеется, относится к 
кодам инструкций, которые assembler пишет в 
консоль. Функцию Print_hex_cmd можете найти в r33 
Processor.cpp.

Original comment by stepnovd...@gmail.com on 10 Apr 2011 at 6:03

GoogleCodeExporter commented 9 years ago
Паш, нужно делать.
В т.ч. вывод в шестнадцатиричном формате.

Original comment by diman...@gmail.com on 11 Apr 2011 at 11:28

GoogleCodeExporter commented 9 years ago
summary

Original comment by diman...@gmail.com on 11 Apr 2011 at 11:31

GoogleCodeExporter commented 9 years ago
Починил проблему с инструкциями. Добавил 
вывод в шестнадцатиричном формате. 
Проверяйте.

Original comment by zaichen...@gmail.com on 11 Apr 2011 at 10:25

GoogleCodeExporter commented 9 years ago
Команды сдвига кодируются правильно.

Original comment by stepnovd...@gmail.com on 13 Apr 2011 at 6:36