Машинный код
В ТАСМе есть такая вещь: файлик, в нем идет код на асме, а рядом с каждой строчкой ее эквивалент на машинном коде. Так вот, есть ли такое дело в NASM? И если нет, то подскажите какой нибудь конвертор NASM-кода в подобный файлик?
ты случайно не про *.LST файлы говоришь?
Кажется я уже нашел...
Буду во вторник препода - фанатика венды и эксплорера - линуксовым ассемблером пугать ))
Еще вопрос:
Цитата:
19 a:
20 00000022 BB01000000 mov ebx, 1
21 00000027 BB04000000 mov ebx, 4
22 0000002C 81FB05000000 cmp ebx, 5
23 00000032 76EE jbe a
24 00000034 81FB06000000 cmp ebx, 6
25 0000003A 7DE6 jge a
20 00000022 BB01000000 mov ebx, 1
21 00000027 BB04000000 mov ebx, 4
22 0000002C 81FB05000000 cmp ebx, 5
23 00000032 76EE jbe a
24 00000034 81FB06000000 cmp ebx, 6
25 0000003A 7DE6 jge a
Где в машинном коде указана метка? И что означают в командах jbe и jge числа EE и E6. Я догадываюсь, что это код метки, но почему тогда он разный.
в машинном коде меток нет. Метка, по сути, - это адрес. А опкоды команды j** выглядят так: байт самого опкода и байт смещения если отрицательное то назад, если положительное, то вперёд. Смещение отсчитывается от смещения следующей команды, т.е. от EIP. В данном случае для jbe a 076h сам опкод, 0EEh это -12h. 34h-12h =22h. 22h это смещение метки a:.
Большое спасибо :)
И еще одно: выполнил я задачу, поместил в eax ответ. А вот как теперь вывести этот ответ на экран?
Ищи по фразе преобразование числа в строку.
посмотри первую тему в этом разделе и всё найдёшь