Ассемблер в C с использованием функций - PullRequest
1 голос
/ 24 декабря 2010

Привет всем, Я пытаюсь создать ассемблер на C на основе некоторых наборов инструкций. Я хочу прочитать файл на ассемблере, содержащий инструкции. В шестнадцатеричном файле есть шестнадцатеричные данные, целочисленные данные и отрицательные целочисленные данные. Мне нужно преобразовать эти данные в 8-битные шестнадцатеричные данные, из которых 6 бит представляют шестнадцатеричные данные, а оставшиеся 2 бита будут иметь код операции. Например ; ldc 0x1000 вывод: 00100000 (код операции для ldc равен 00) ldc -3; вывод: fffffd00 (6 бит, 2 с, дополнение +3).

Я пытаюсь ltoa преобразовать целое число в шестнадцатеричное, но в качестве выходной строки приводится строка, поэтому я не могу добавить 0. Пожалуйста, предложите срочно

1 Ответ

2 голосов
/ 24 декабря 2010

Вы, кажется, путаете биты с клевами. Одна шестнадцатеричная цифра представляет 4 бита. Код операции может хранить 24-битную константу, 6 полубайтов. Считайте значение из строки с помощью strtol () и сдвиньте его влево на 8. Или с кодом операции.

...