Подскажите, что не так в простом коде? Вроде должно все работать, но выдает ошибку "B Integer Out of Range" :v2_conf2:
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" :v2_conf2:
PHP код:ORG 40000
LD BC,#6464 ;координаты точки
LD L,30
L1 CALL #22E5 ;процедура печати точки
INC BC
DEC L
JR NZ,L1
RET
Хм, а мож надо перед вызовом сохранить BC и HL в стеке, а после восстановить?
Да, все получилось. Значит процедура печати точки портит регистры? Получается всегда надо сохранять значения, чтобы воспользоваться подпрограммами ПЗУ?
Выходит что так.
Shuran33, ну ты бы защел и посмотрел в этой процедуре что происходит, вопросов бы лишних и не возникло, благо щас в любом эмуляторе можно посмотреть.
Вы тут ща запугаете народ - они и перед RST #10 или #1f54 начнут сохранять все, включая альтернативные и индексные регистры :)Цитата:
Выходит что так.
Там после процедуры вывода точки похоже нужно делать так:
Код: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