Лучший ответ
Ответы
-
-
-
4 2
antoxz (28) 6 (7446)2731 16 лет
; Apakshprogramma "mlt" reizina divus 8-bitu skaitljus, kuri atrodas regjistros A un B,
; 16-bit rezultaats paliek regjistraa HL. C, D un E regjistru veertiibas tiek restaureetas.
; Tiek lietota i8080 komandu sisteema.
org 0x0000
mvi a, 0x7f ; 1. reizinaamais
mvi b, 0x61 ; 2. reizinaamais
call mlt ; reizinaashanas apakshprogrammas izsaukshana
hlt
; Reizinaashanas apakshprogrammas saakums
mlt: push b ; B, C, D un E regjistru veertiibu saglabaashana stekaa
push d
mov e, a ; 1. reizinaamo glabaajam regjistraa DE kaa 16 bitu skaitli
mvi d, 0
mvi a, 0x80 ; regjistraa A glabaajam un apstraadaajam masku
lxi h,0 ; regjistraa HL veidojam rezultaatu
mlt_loop: mov c, a ; backupojam masku C
ana b ; maskeejam 2. reizinaamo no B
mov a, c ; restaureejam masku regjistraa A
jz mlt_shft ; ja 2. reizinaamaa attieciigais bits ir 0, izlaizham pieskaitiishanu
dad d ; HL <- HL+DE
mlt_shft: rar ; biidaam masku regjistraa A pa labi
jc mlt_end ; ja apstraadaati visi 8 regjistra B biti, tad reizinaashana pabeigta
dad h ; biidaam rezultaatu HL pa kreisi
jmp mlt_loop
mlt_end: mov a, e ; atjaunojam A, B, C, D un E regjistru veertiibas
pop d
pop b
ret
; Reizinaashanas apakshprogrammas beigas -
1 0
Forget-me-Not 7 (63556)12133462 16 лет
Кстати тоже хотел бы узнать, но это как никак личный вопрос :(
-
-
-
-
-
-
-