кодинг на ассемблере i8080 для CP/M-80

 


Два дня назад нечего было делать, решил разобраться с ассемблером zmac и немного потренироваться с синтаксисом i8080. Отдельная загадка - подобрать ключи командной строки к zmac и получить готовый файл, который можно скормить эмулятору CP/M-80. Вторая загадка - написать код без поисков в Google. Получилось.

Компиляция:

zmac prdec.s --od bin --oo cim --od %CD%

cpm prdec.cim

pause


Сам код:

.8080

.cim

org $100


; lxi h,$9C40;16384

lxi b,$FE07;$0503

call mult

call pr10

ret

mult:

;HL=B*C

lxi h,0

mov d,h

mov e,c

mov a,b

mvi b,8

mulp:

or a

rar

jp nc,noadd

dad d

noadd:

xchg

dad h

xchg

dcr b

jnz mulp

ret

pr10

lxi d,-10000

call subd

lxi d,-1000

call subd

lxi d,-100

call subd

lxi d,-10

call subd

mov a,l

adi 48

call prchar

ret

subd

mvi a,47

sdlp:

inr a

shld tmp

dad d

jc sdlp

prchar:

mov e,a

mvi c,2

call 5

lhld tmp

ret

tmp: dw 0

Комментарии