Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Код операции берет один байт, и операнды находятся в следующих байтах. Проверьте столбец размера байта здесь , например.
При изучении ссылок как http://www.atarimax.com/jindroush.atari.org/aopc.html Вы будете видеть, что каждый код операции имеет кодирование, определенное как:
HEX LEN TIM
ШЕСТНАДЦАТЕРИЧНОЕ ЧИСЛО является Вашим 1-байтовым кодом операции. Сразу после него байты LEN его аргумента. Консультируйтесь со ссылкой для наблюдения, каковы те аргументы. Данные TIM важны для эмуляторов - это - количество тактов, которые эта инструкция берет для выполнения. Вам будет нужно это для получения корректной синхронизации.
Эти значения (LEN, TIM) не кодируются в самом коде операции. Необходимо хранить эти данные в программе loader/executer. Это - просто большая таблица поиска. Или можно определить мини-язык для кодирования данных и читателя.
Эта книга могла бы помочь: http://www.atariarchives.org/mlb/
кроме того, попробуйте examing любые другие 6502 aseembler/simulator/debugger там, чтобы видеть, как блок кодируется как Машинный язык.
Эти 6 502 руководства находятся в сети на различных сайтах истории. KIM-1 поставляется с ними. Возможно, больше в них, чем Вы должен знать.
Шумные игры apple II включали дизассемблер, я думаю, что это - то, чем это назвали, и это покажет Вам в хорошем формате шестнадцатеричные коды операций и 3 символьных кода операции и операнды.
Так данный, как мало памяти было доступно, им удалось проталкиваться количество байта операнда (всегда 0, 1 или 2) 3 символьных кода операции для всех 6 502 систем команд в действительно небольшое пространство, потому что существует действительно не так большая часть его.
, Если можно вскопать apple II rom, можно просто вырезать и вставить оттуда...