
4. Команды инкремента и декремента
Задание:
Записать в память, начиная с адреса 0800, коды программы инкремента и декремента
Адрес ЯП |
Мнемоника команды |
Код |
Комментарий | |
0800 0801 |
MVI E, 0F |
1E 0F |
Загрузка Е Е=0F | |
0802 |
INR E |
1C |
E=E+1 | |
0803 0804 0805 |
*LXI H, 0900 |
21 00 09 |
Загрузка HL HL=0900, адрес М |
F=12 E=10 |
0806 |
INR M |
34 |
M=M+1 | |
0807 0808 0809 |
* LXI D, 0F00 |
11 00 0F |
Загрузка DE DE=0F00 |
F=06 M(0900)=34 |
080A |
INX D |
13 |
DE=DE+1 | |
080B |
*DCR D |
15 |
D=D-1 |
F=07 D=0F E=01 |
080C |
*DCR M |
35 |
M=M-1 |
F=12 D=0E |
080D |
*DCX H |
2B |
HL=HL-1 |
F=17 M(0900)=33 |
080E |
*NOP |
00 |
|
F=17 H=08 L=FF |
5. Перемещение массива данных
Задание:
Записать коды программы перемещения массива данных из 5 элементов из области памяти, начинающейся с адреса 0900, в область памяти с адреса 0950
M1:(0900)=33
M2:(0901)=34
M3:(0902)=35
M4:(0903)=36
M5:(0904)=37
M6:(0905)=00
Адрес ЯП |
Метка |
Мнемоника команды |
Код |
Комментарий | |
0800 0801 0802 |
|
LXI H, 0900 |
21 00 09 |
Загрузка HL=0900, адрес начала массива 1 | |
0803 0804 0805 |
|
LXI B, 0950 |
01 50 09 |
Загрузка BC=0950, адрес начала массива 2 | |
0806 0807 |
|
MVI E, 05 |
1E 05 |
Загрузка Е=05, счёт циклов | |
0808 |
ADDR |
MOV A,M |
7E |
Перемещение элемента массива | |
0809 |
|
STAX B |
02 | ||
080А |
|
*INX H |
23 |
Изменение базовых адресов |
M(0950)=33 F=57 |
080В |
|
*INX B |
03 |
H=09 L=01 F=D7 | |
080С |
|
DCR E |
1D |
Счёт циклов | |
080D 080E 080F |
|
JNZ ADDR |
C2 08 08 |
Переход на метку если счёт не закончен | |
0810 |
|
*NOP |
00 |
H=09 L=05 B=09 C=55 E=00 F=57 M1(0950)=33 M2(0951)=34 M3(0952)=35 M4(0953)=36 M5(0954)=37 M6(0955)=00 |
6. Сложение содержимого двух ячеек памяти
Задание:
Напишите и выполните программу сложения содержимого двух ячеек памяти:
М1=М2+М3
Адрес М2:(0900)=1B
Адрес М3:(0901)=06
Адрес М1:(0902)
Адрес ЯП |
Мнемоника команды |
Код |
Комментарий |
0800 0801 0802 |
LXI H, 0900 |
21 00 09 |
Загрузка регистра HL=0900, Адрес M2 |
0803 |
MOV A,M |
7E |
Пересылка из M2 в A |
0804 |
INX H |
23 |
HL=HL+1 |
0805 |
ADD M3 |
86 |
A=A+M3 |
0806 |
INX H |
23 |
HL=HL+1 |
0807 |
MOV M,A |
77 |
Пересылка из А в М1 |
0808 |
NOP |
00 |
M1(0902)=21 |
Московский Инженерно – Физический Институт (Государственный Университет)
Работа №3
Общее ознакомление с микропроцессором
КМ1810ВМ86.
Выполнила
Студентка Первинкина
Группы Ф6-01н
2006г
2
Адрес ЯП |
Мнемоника команды |
Код |
Комментарий | |
0100 0101 0102 |
MOV AX, 50 |
B8 50 00 |
Передача слова 0050 в регистр AX | |
0103 0104 |
*MOV DS, AX |
8E D8 |
Передача слова из регистра AX в регистр DS |
AX=0050 |
0105 0106 0107 |
*MOV SI, 25 |
BE 25 00 |
Передача слова 0025 в регистр SI |
DS=0050 |
0108 0109 010A 010B |
*MOV(SI), 58 |
C6 04 58 00 |
Передача байта 58 в ячейку с адресом который содержится в регистре SI |
SI=0025 |
010С |
*NOP |
00 |
|
0525=58 |
1
Адрес ЯП |
Мнемоника команды |
Код |
Комментарий | |
0100 0101 0102 |
MOV BX, BAAB |
BB AB BA |
Передача слова ВААВ в регистр ВХ | |
0103 |
*MOV DX, BX |
89 DA |
Передача данных из регистра ВХ в регистр DX |
BX=ВААВ |
0104 | ||||
0105 0106 0107 0108 |
*MOV(0450), BX |
89 1E 50 04 |
Передача данных из регистра BX я ячейки 0450 и следующую |
DX=BAAB |
0109 010А |
*MOV BH, DL |
88 D7 |
Передача из DL в BH |
0450=AB 0451=BA |
010В 010С 010D |
*MOV SI, 0400 |
BE 00 04 |
Передача слова 0400 в SI |
BH=ABAB |
010E 010F 0110 |
MOV BL, (SI+51) |
8A 5C 51 |
Передача данных из ячейки SI+51 в регистр BL | |
0111 0112 |
*MOV BH, BL |
88 DF |
Передача данных из BL в BH |
SI=0400 BL=ABBA |
0113 |
*NOP |
00 |
|
BH=BAAB |