Определение того, сколько бит занимает процессор, просматривая файл списка сборки - PullRequest
1 голос
/ 05 февраля 2012

В моем введении в класс компьютеров мы написали программу сборки для микроконтроллера MC68332. Я знаю, что этот микроконтроллер 32-разрядный, потому что я прочитал его в таблице. Мне было интересно, есть ли способ определить это, посмотрев на файл LST, сгенерированный при сборке исходного кода asm.

Ответы [ 3 ]

1 голос
/ 05 февраля 2012

первое число в этих строках, очевидно, является адресом; второй (и третий) фактические коды операций собраны. причина, по которой последние два имеют два 16-битных слова, это аргументы $ 01 и $ 02. CLR.L - хороший намек на то, что это 32-битный процессор: «clear longword».

0 голосов
/ 06 февраля 2012

В общем, вы не можете просто сказать из инструкции по сборке или листинга.Если вам нужно посмотреть мнемонику, вы узнаете все об этой инструкции, и она расскажет вам, сколько битов будет задействовано.Но даже тогда этого может быть недостаточно, так как я мог бы написать серию инструкций или мэйнфрейм IBM System z, которые работают только с самой младшей 1/4 64-битного регистра или имеют дело с одним байтом в хранилище, и выпросто не могу сказать по коду, что 16 регистров общего назначения являются 64-битными.Или древний код Honeywell Series 6000, который может работать либо с 6 6-разрядными символами, либо с 4 9-разрядными символами в регистре на основе бита флага в регистре управления.

Это затем приводит к наилучшему способуузнайте - прочитайте спецификацию, Принципы работы или подобное руководство и изучите инструкции.И чем больше вы учитесь, тем веселее вы понимаете, что используете ассемблерный код.

0 голосов
/ 05 февраля 2012

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

На этом процессоре коды операций обычно используют кратное 16 бит (2 байта), поэтому вы видите только четные адреса. Несмотря на это, это 32-битный процессор, в основном из-за его адресного пространства 2 ^ 32. По этой причине вы видите адреса шириной восемь цифр, каждая цифра кодирует 4 бита.

Вы можете догадаться, что это 32-битный процессор из суффикса .L некоторых инструкций, это сокращение от "long", которое обычно 32-битное, поэтому этот процессор дополнительно имеет возможность обрабатывать 32-битные инструкции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...