Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Простой код на ассемблере для не работает

Вс авг 26, 2012 01:53:38

У меня плата Easy8051b с контроллером AT89S8253.
Среда программирования Keil uVision.
Пишу код:
Код:
NAME   TEST1
    Org   0;
   Jmp   Start;
USING   0;
Start:   
   Mov A,#0011B;
Again:;
   Mov   P0,A;
   Jmp Again;
END


Ассемблер пишет - Undefined symbol, ругается на P0.
Почему?

Re: Простой код на ассемблере для не работает

Вс авг 26, 2012 10:27:58

Потому что, судя по листингу, для него P0 действительно "undefined symbol", он не будет Вас обманывать, честно-честно! :)))

Re: Простой код на ассемблере для не работает

Вс авг 26, 2012 10:40:21

А почему тогда R0 ассемблер знает?
Где определяется P0? Что надо добавить в проект?

Re: Простой код на ассемблере для не работает

Вс авг 26, 2012 12:22:09

R0-R7, ACC - определено "по умолчанию", а вот для остального существуют файлы описания... где у Keil uVision честно не интересовался - там help и
"macro assembler and utilites User's Guide" долго читать надо. :cry:
Сам я для mcs51 пользуюсь бесплатным полным ассемблером от ATMEL
http://www.atmel.com/tools/C51ASM.aspx - страничка с дистрибутивами под разные ОС
http://www.atmel.com/Images/c51asm_win_1-2.zip - собственно под WIN_XP
ну и для тех же атмелей родная среда с симулятором (под LPсерию)
http://www.atmel.com/tools/AT89LPDEVELOPERSTUDIO.aspx
- по нему могу полностью проконсультировать и шаблончиков подкинуть (кстати синтаксис подобен Keil uVision) :beer:

Re: Простой код на ассемблере для не работает

Вс авг 26, 2012 13:40:07

Нашел в Keil нужный header
Спасибо
Ответить