Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 17:14   #1
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию я в тупике...

Добрый день. У меня вопросик не по коду, а проста нужна ваша помощь, даже подсказка. Вот у меня есть массив структур или как то так:
мы его типа описываем или что там:
Код:
typedef struct 
{
	char        KOP[5];
	int         Cod;
	int         Ext_Cod;
} MACHINE_OPERATION;
А вот потом выписываем, что записано в нем:
Код:
	MACHINE_OPERATION MOT[46] = {
   {"ADD", 0x5,0x0},
   {"ADX",-0xA,0x4},
   {"CALL",-0x3,0x0},
   {"DEC",-0xA,0x3},
   {"DIV", 0x8,0x0},
   {"DVX",-0xA,0x7},
   {"IN",-0xC,0x1},
   {"INC",-0xA,0X2},
   {"JC", 0xC,0x0},
   {"JE",-0x1,0x0},
   {"JMP", 0x9,0x0},
   {"JNC", 0xD,0x0},
   {"JNE",-0x2,0x0},
   {"JNS", 0xF,0x0},
   {"JNZ", 0xB,0x0},
   {"JS", 0xE,0x0},
   {"JZ", 0xA,0x0},
   {"LDA", 0x1,0x0},
   {"LDAX",-0xD,0x1},
   {"LDX", 0x2,0x0},
   {"LDY",-0x4,0x0},
   {"LOOP",-0x6,0x0},
   {"MASP",-0xB,0x9},
   {"MAX",-0xB,0x3},
   {"MAY",-0xB,0x5},
   {"MLX",-0xA,0x6},
   {"MSPA",-0xB,0xA},
   {"MUL", 0x7,0x0},
   {"MXA",-0xB,0x4},
   {"MXY",-0xB,0x7},
   {"MYA",-0xB,0x6},
   {"MYX",-0xB,0x8},
   {"NEG",-0xA,0x8},
   {"NOP", 0x0,0x0},
   {"OUT",-0xC,0x2},
   {"POP",-0xB,0x2},
   {"PUSH",-0xB,0x1},
   {"RET",-0xC,0x4},
   {"SBX",-0xA,0x5},
   {"STA", 0x3,0x0},
   {"STAX",-0xD,0x2},
   {"STOP",-0xC,0x3},
   {"STX", 0x4,0x0},
   {"STY",-0x5,0x0},
   {"SUB", 0x6,0x0},
   {"ZERO",-0xA,0x1}
	};
что мне вообще надо. В будущем, мне приходится собирать команду из кода операции и операнда... или адреса.
Представим у меня есть строчка:
Код:
	sta	i
У меня метка i находится по адресу: 2D (например)
потом значит мы смотрим на второй столбик структур массив...или как там( на языке С : MOT[39].Cod), нашли там sta. Смотрим на код: -0xA, вот тут у меня косяк выходит, если выводить другие команды, код которых положителен, то с помощью printf они выводятся без проблем, а отрицательные выводятся с траблами. Но расскажу дальше, в будущем должно выглядеть так: A02D, где первая цифра - код, а следующие 3 цифры - адрес метки или операнда, т.е. если адрес метки или значение операнда будет равно 100, то выглядеть будет следующим образом: A100. Помогите пожалуйста, потому что я в стопоре, смотрел у преподавателя исходник этой программы, там с труктуре инты как и у меня, весь алгоритм того что я вам сейчас рассказал нету, буду ждать с нетерпением ответа, если есть неясности, задавайте вопросы, отвечу. Да и еще, как вы поняли, мы работаем с шестнадцатеричными числами, но значения операндов и адреса меток я перевожу в десятичные и храню их как десятичные.
Olejik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск