9. Вычислить сумму байт буфера BUF1, размером len_BUF, (более 256) результат поместить в ячейку памяти по адресу SUM, формат суммы - Word. Использоватькоманду DAD RP
first_address equ 1000h
dlinaBuf1 equ 1000h
defseg d_seg, start = first_address, class=data
seg d_seg
BUF1: ds dlinaBuf1
SUM: ds 2
ukCht: ds 2h
defseg c_seg, start = 0000h, class=code
seg c_seg
; ZAPOLNIM HUINEI BUFER
LXI H, BUF1
LXI B, dlinaBuf1
MVI D, 00h
L1: MOV M, D
INR D
INX H
DCX B
MOV A, B
ORA C
JNZ L1
; KONEC ZAPOLNENIIA HUINEI
LXI H, BUF1
LXI B, dlinaBuf1
L2: MOV E, M
INX H
SHLD UkCht
LHLD SUM
DAD D
SHLD SUM
LHLD UkCht
DCX B
MOV A, B
ORA C
JNZ L2
11. Написать программу вычисления суммы всех слов буфера BUFW, объемом len_W. Формат суммы – DWORD
first_address equ 1000h
dlinaBuf1 equ 1000h
defseg d_seg, start = first_address, class=data
seg d_seg
BUF1: ds dlinaBuf1
SUMs: ds 2h
SUMm: ds 2h
ukCht: ds 2h
defseg c_seg, start = 0000h, class=code
seg c_seg
; ZAPOLNIM HUINEI BUFER
LXI H, BUF1
LXI B, dlinaBuf1
MVI D, 00h
L1: MOV M, D
INR D
INX H
DCX B
MOV A, B
ORA C
JNZ L1
; KONEC ZAPOLNENIIA HUINEI
LXI H, BUF1
LXI B, dlinaBuf1
L2: MOV D, M
INX H
MOV E, M
INX H
SHLD UkCht
LHLD SUMm
DAD D
SHLD SUMm
JNC L3
LHLD SUMs
INX H
SHLD SUMs
L3: LHLD UkCht
DCX B
DCX B
MOV A, B
ORA C
JNZ L2
end
13. Вычислить сумму байтов буфера BUF1, размером len_BUF (не более 80h), результат поместить в ячейку памяти по адресу SUM (формат byte)
first_address equ 800h
LEN_BUF equ 18h
defseg d_seg, start = first_address, class=data
seg d_seg
buf1: db 43h, 0A3h, 8Ch, 0F3h, 5Ah, 9Bh, 0FCh, 69h
db 13h, 63h, 0BCh, 03h, 15h, 9Fh, 0Ch, 6Ch
db 47h, 0A9h, 2Ch, 83h, 5Ch, 9Ch, 0Fh, 14h
SUMM: ds 1; zarezerv dlia cummi
defseg c_seg, start = 0000h, class=code
seg c_seg
LXI H, buf1
MVI B, LEN_BUF; s4et4ik
L1: ADD M
INX H
DCR B
JNZ L1
MOV M, A
end
14. Вычислить сумму байтов буфера BUF1, размером len_BUF (не более 80h), результат поместить в ячейку памяти по адресу SUM (формат Word)
ТОЖЕ САМОЕ ЧТО И ЗАД 7
15. Вычислить сумму слов буфера BUF3, размером 80h, результат поместить в ячейку памяти по адресу SUM формат DWord).
РЕШЕНИЕ – УПРОЩЁННАЯ ВЕРСИЯ ЗАД 11 (СЧЁТЧИК ИЗ 1 РЕГИСТРА А НЕ ИЗ ПАРЫ)
16. Вычислить сумму байтов буфера BUF1, размером 200h, результат поместить в ячейку памяти по адресу SUM формат DWord).
first_address equ 1000h
dlinaBuf1 equ 1000h
defseg d_seg, start = first_address, class=data
seg d_seg
BUF1: ds dlinaBuf1
SUMs: ds 2h
SUMm: ds 2h
ukCht: ds 2h
defseg c_seg, start = 0000h, class=code
seg c_seg
; ZAPOLNIM HUINEI BUFER
LXI H, BUF1
LXI B, dlinaBuf1
MVI D, 00h
L1: MOV M, D
INR D
INX H
DCX B
MOV A, B
ORA C
JNZ L1
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.