тут было пустопорожнее брюжжание о том, что чипы от MSX можно ведь попрограммировать в составе компьютера MSX
Вид для печати
тут было пустопорожнее брюжжание о том, что чипы от MSX можно ведь попрограммировать в составе компьютера MSX
Можно ли сократить приведенную процедуру? Или ускорить без увеличения размера?Код:;A(=C)=HL/DE
;HL=HL%DE
UDiv16168:
mvi b,8
mov a,l
mov l,h
mvi h,0
UDiv16168_1:
dad h\ push psw\ add a\ mov c,a\ adc l\ sub c
sub e\ mov l,a\ mov a,h\ sbb d\ mov h,a
jnc UDiv16168_2
pop psw
jc UDiv16168_3
dad d
.db 3Ah ;lda ...
UDiv16168_2:
pop psw
UDiv16168_3:
inr c
mov a,c
dcr b
jnz UDiv16168_1
ret
Главное, чтобы в A получалось частное. Остаток в HL; частное в C; B и DE - все это не критично.
Получилось сократить на 5 байт и ускорить:
Заплатить пришлось порчей остатка, но добавив одну команду можем его сохранить при необходимости.Код:;A(=L)=HL/DE
UDiv16168:
mvi b,8
xra a
UDiv16168_1:
dad h\ adc a\ mov c,a\ jc UDiv16168_2
mov a,h\ sub e\ mov a,c\ sbb d
mov a,c
jc UDiv16168_3
UDiv16168_2:
mov a,h\ sub e\ mov h,a\ mov a,c\ sbb d
inr l
UDiv16168_3:
dcr b
jnz UDiv16168_1
mov a,l
ret
Привет всем...
А есть - Pretty assembler не как web страница,
а как приложение с .exe файлом?
И кроме Pretty assembler'а есть еще какой-нибудь софт,
типа assembler + monitor под Вектор-06Ц?
На гитхапе прити ассемблера есть его исходники для сервера, и там же вроде есть описание как запустить это под винды локально, используя встроенный веб сервер веника, или типа того уже не помню. Все это работает, в порядке, только без эмулятора,но все компилится и можно запустить дальше на эмуле типа "башкирия" под винды.
Есть несколько эмулей еще.
Чтобы prettyasm запустить локально, нужен локальный сервер. Например, если установлен Питон, то проще всего в каталоге, где сорцы ассемблера, запустить "python3 -m http.server 8000" и тогда ассемблер будет на http://localhost:8000/ Сорцы ассемблера - https://github.com/svofski/pretty-8080-assembler Но кнопка "RUN" так работать все равно не будет, потому что эмулятор будет расположен на другом домене. Чтобы все заработало вместе, надо аналогичным образом разместить у себя vector06js. Если правда интересно, могу попробовать рассказать как это сделать. Но по-моему это того не стоит.
Чтобы локально программу собирать есть отличные ассемблеры. Я иногда пользуюсь TASM 3.2, например: https://www.ticalc.org/archives/file...250/25051.html
А чтобы запускать и отлаживать есть эмуляторы.
По-моему идейно это скорее из темы "Программирование": https://zx-pk.ru/threads/34480-programmirovanie.html
Там замечательная сводка всевозможных средств разработки под Вектор.
Привет всем...
Да хотел, что-нибудь попробовать написать...
Не большое...
У меня первый мой комп был - Вектор-06Ц...
Но книжки по ассемблеру не было в поставке - не разобрался...
В комплекте шли брошюры - Basic, monitor и книга со схемами...
Процедура неинтересная для общественности, но для полноты картины дополню обработкой деления на 0.
Как вариант:
1. В начале добавляем
mov a,e\ ora d\ rz
2. Меняем
mvi b,8 на mvi b,7
...
jnz UDiv16168_1 на jp UDiv16168_1
После таких изменений и дополнений на выходе флаг Z=1 будет индикатором деления на 0. Флаг S=0 тоже показывает деление на 0.