2015-02-27 7 views
0

Я всегда работал с C, поэтому эти первые дни с сборкой довольно сложны для меня, извините за мой глупый вопрос. Я начал несколько небольших проектов по сборке с MplabX и я не понимаю, если есть некоторые большие различия между этим кодом:Различия между org и кодом в Pic18 Assembly

rst code 0x00 

и этим:

org 0x00 

Я думаю, что они ЪоТ наборов адрес 0x00, но я не понимаю, нужно ли мне запускать свою программу с org вместо кода.

большое спасибо за ваше терпение. bye

+0

Я не знаю об этом ассемблере, но некоторые ассемблеры позволяют указать предполагаемый начальный адрес кода, не влияя на фактическое местоположение кода внутри созданной программы (в начале изображения программы нет прокладки) , Например, первый байт файла .COM MSDOS загружается в смещение 0x100 в памяти. Другим примером является то, что BIOS ПК загрузит код в местоположение 0x0000: 0x7c00. Для программы .COM program org 00100h используется для загрузочного сектора, используется org 07c00h. – rcgldr

+0

Благодарим вас за ответ! – Deid

ответ

1

Я думаю, что это для компоновщика. «код» создает новый раздел кода по указанному адресу, поэтому компоновщик может либо создать блок (если он доступен, если не указан адрес), экспортировать его в другие модули или перенести его. С другой стороны, Org просто сбрасывает следующий контент в определенном месте без какой-либо возможности переместить или интегрировать его.

Есть моменты, когда вы, возможно, захотите сделать то и другое (например, DMA на оборудование и т. Д.), Но для вашего собственного кода я бы рекомендовал директиву «code».

+0

Это интересная информация, я никогда не понимал, что это может быть иначе для компоновщика, а не только для написания кода, спасибо – Deid