Подскажите, что не так в простом коде? Вроде должно все работать, но выдает ошибку "B Integer Out of Range"
PHP код:
ORG 40000
LD BC,#6464 ;координаты точки
LD L,30
L1 CALL #22E5 ;процедура печати точки
INC BC
DEC L
JR NZ,L1
RET
Подскажите, что не так в простом коде? Вроде должно все работать, но выдает ошибку "B Integer Out of Range"
PHP код:
ORG 40000
LD BC,#6464 ;координаты точки
LD L,30
L1 CALL #22E5 ;процедура печати точки
INC BC
DEC L
JR NZ,L1
RET
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Хм, а мож надо перед вызовом сохранить BC и HL в стеке, а после восстановить?
Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
Pentagon 128(1991г.)+YМ
программатор 2732-27512.
Да, все получилось. Значит процедура печати точки портит регистры? Получается всегда надо сохранять значения, чтобы воспользоваться подпрограммами ПЗУ?
Выходит что так.
Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
Pentagon 128(1991г.)+YМ
программатор 2732-27512.
Shuran33, ну ты бы защел и посмотрел в этой процедуре что происходит, вопросов бы лишних и не возникло, благо щас в любом эмуляторе можно посмотреть.
Свирепый агрессивно-депрессивный мордовец!
Не уверен - не напрягай!
Не сдавайся. Дыши?
Virtual TR-DOS
Вы тут ща запугаете народ - они и перед RST #10 или #1f54 начнут сохранять все, включая альтернативные и индексные регистрыВыходит что так.
Последний раз редактировалось Alex Rider; 10.11.2013 в 03:50.
Там после процедуры вывода точки похоже нужно делать так:
Код:ORG 40000 LD BC,#6464 ;координаты точки LD L,30 L1 CALL #22E5 ;процедура печати точки LD BC,(#5C7D) INC BC DEC L JR NZ,L1 RET
А тогда еще вопрос. Как в аласме можно хранить переменные?
Вот так можно? :
И еще интересно где лучше хранить данные? На стеке нежелательно наверное?PHP код:
LD A,(date)
RST #10
date 62,63,45,43
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)