JNZ LOOPSUM
MOV E,A
XCHG ;подготовкавходных
MVI D,N ;данных для ПП деления
CALL DIV
MOV A,H
STA REZULT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;в задаче не нужно, приведено от не фиг делать:
DIV:
MOV A,D
MVI C,0
SDVIG: ;подготовка делителя - сдвиг его до старшего разряда
ANI 10000000B
MOV A,D
JNZ DELENIE
RLC
MOV D,A
JMP SDVIG
DELENIE:
CMP H
JC CARRY
RRC
9.1.
JNC DELENIE
MOV B,A
MOV A,C
RRC
ORA B
MOV C,A
ANI 01111111B
MOV B,A
XRA C
MOV C,A
MOV A,B
CARRY:
CMA
MOV B,A
MOV A,C
CMA
MOV C,A
INX B
DAD B
MOV A,L
CMA
CMP C
MOV A,B
CMA
INR A
JNC DELENIE
RET
10.1. Из массива расположенного между адресами ADDR1 и ADDR2 (ADDR1 < ADDR2), выбрать числа (байты/слова), превышающие POROG, и просчитать их количество. Фрагмент оформить как подпрограмму, результат передать как параметр подпрограммы.
ZAD10:
LXI SP,STPOINT
LXI H,ADDR1
MVI B,ADDR2-ADDR1
MVI A,40
NEXT10:
MOV M,A
INR A
INX H
DCR B
JNZ NEXT10
LXI H,ADDR1
MVI B,ADDR2-ADDR1
CALL PODPR10
PODPR10:
LOOP10:
MOV D,M
MVI A,POROG1
CMP D
JNC NO_CARRY10
LDA COUNT1
INR A
STA COUNT1
NO_CARRY10:
INX H
DCR B
JNZ LOOP10
LDA COUNT1
MOV D,A
RET
11.1. Вычислить контрольную сумму буфера BUF1 размером 256 байт. Суммирование выполнить байтами по модулю 65536.
ZAD11: ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;в задаче не нужно, приведено для наглядности:
INIT11:
LXI H,BUF11
MVI B,0H
MVI A,0FH
LOOP_INIT11:
RLC
MOV M,A
INX H
DCR B
JNZ LOOP_INIT11
M1:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LXI H,BUF11
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.