Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Мета роботи: Дослідження структури, принципу дії однокристальних мікро-ЕОМ (ОМЕОМ) та виконання окремих команд і простих програм з використанням різних методів адресації в програмах.
1.Завдання
Відредагувати програму для МП-системи, вказану викладачем, з використанням налагоджувача-симулятора однокристальної мікро-ЕОМ (серії 1816), для чого забезпечити:
Для створення вихідного (початкового) файла з розширенням *.asm використовується редактор EDT.COM, в якому створюються та відлагоджуються робочі програми.
При роботі з редактором необхідно:
Наприклад, команда mov a,#06 записується:
[пропуск]mov[пропуск]a,#06h“Enter”,
[мітка]:[пропуск]mov [пропуск]a,#06h[пропуск];[коментар]”Enter”,
Призначення клавіш в редакторі описані в меню, що викликається клавішею “F1” (наприклад, для завершення редагування та запису –“F3”+”E”, для виходу з редактора без запису –“F3”+”Q”+”Y” і т.д.).
Компілятор x8748.EXE служить для створення із вже створеного асемблерного файла (*.asm) файлів з розширеннями *.obj (об’єктного, записаного на машинній мові - в двійкових кодах) та *.lst., (друкованої копії, що містить одночасно вихідну та об’єктну програми).
При цьому в діалоговому режимі необхідно виконати такі кроки:
3. Запустити програму Link.exe (створення файлів в форматі *.hex) - лынкер (LINK), що дозволяє включати в програму модулі, які розроблені незалежно один від одного, і програму, яка забезпечує налагодження переміщуваних програмних модулів на абсолютні адреси.
При цьому в діалоговому режимі необхідно виконати такі кроки:
1. <Input filename>: ім’я файла (без розширення).
2. <Enter offset fore “CODE”> : 0
3. <Input filename> : “ENTER”
4. <Output filename> ім’я файла (без розширення)
5. <Library filaname> : якщо файл знаходиться в директорії, де розміщений редактор, то «ENTER»
6. <Options (…………………….)> : “ENTER”
4. Далі запустити редактор “FD48.EXE”:
2. Виконання роботи.
Вміст файлу LAB5.ASM
code section
.ORG 0
JMP INIT
.org 3
JMP INT
.org 07h
JMP Timer
INT:
RETR
Timer:
RETR
INIT:
ORL P2,01
ORL P1,0ffH
SEL RB0
MAIN:
IN A, P1 ;Зчитування стана Р1 (Y)
MOV R2,A ;R2 = y
MOV R0,#40 ;
MOV A, @R0 ;Зчитування Х з комiрки 40
ADD A, R2 ;A = X + Y
ADD A, R2 ;A = X + 2Y
ADD A, #246 ;A = A+246 = A - 10
CALL OUT
JMP MAIN
OUT:
; Пiдпрограма передавання бiтiв через лiнiю Р2.0
; A - байт дял передачi
MOV R1,#8 ; Лiчильник бiтiв
ANL P2,#0FEh ; Cтартовий бiт
CALL DELAY ; Очикування
LOOP: JB0 ONE ; Перехiд, якщо бiт А.0 дорiвнює 1
ANL P2,#0FEh ; Скидання Р1.0
JMP NEXT
ONE: ORL P2,#1 ; Встановлення Р1.0
JMP NEXT ; Надлишкова команда для
; вирiвнювання часу передачi 0 ? 1
NEXT: RR A ; Зсув акумулятора вправо (пiдготовка
CALL DELAY ; Очикування до початку передавання нового быта
DJNZ R1,LOOP ; до передачi чергового бiта)
ORL P2,#1 ; Встановлення Р1.0
CALL DELAY ; Очикування
RET
DELAY: ; Просто 10 холостих команд
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
ends
Вміст файлу LAB5.HEX
:02000000040BEF
:020003000409EE
:10000700040A93938A0189FFC509AAB828F06A6A86
:1000170003F6141D0410B9089AFE143712299AFE24
:10002700042D8A01042D771437E9238A01143783B5
:0B00370000000000000000000000833B
:00000001FF
Вміст файлу LAB5.LST
1 0000 code section
2 0000 .ORG 0
3 0000 04 0B JMP INIT
4 0003 .org 3
5 0003 04 09 JMP INT
6 0007 .org 07h
7 0007 04 0A JMP Timer
8 0009 INT:
9 0009 93 RETR
10 000A Timer:
11 000A 93 RETR
12 000B INIT:
13 000B 8A 01 ORL P2,01
14 000D 89 FF ORL P1,0ffH
15 000F C5 SEL RB0
16 0010 MAIN:
17 0010 09 IN A, P1 ;Зчитування стана Р1 (Y)
18 0011 AA MOV R2,A ;R2 = y
19 0012 B8 28 MOV R0,#40 ;
20 0014 F0 MOV A, @R0 ;Зчитування Х з комiрки 40
21 0015 6A ADD A, R2 ;A = X + Y
22 0016 6A ADD A, R2 ;A = X + 2Y
23 0017 03 F6 ADD A, #246 ;A = A+246 = A - 10
24 0019 14 1D CALL OUT
25 001B 04 10 JMP MAIN
26 001D OUT:
27 ; Пiдпрограма передавання бiтiв через лiнiю Р2.0
28 ; A - байт дял передачi
29 001D B9 08 MOV R1,#8 ; Лiчильник бiтiв
30 001F 9A FE ANL P2,#0FEh ; Cтартовий бiт
31 0021 14 37 CALL DELAY ; Очикування
32 0023 12 29 LOOP: JB0 ONE
33 0025 9A FE ANL P2,#0FEh ; Скидання Р1.0
34 0027 04 2D JMP NEXT
35 0029 8A 01 ONE: ORL P2,#1 ; Встановлення Р1.0
36 002B 04 2D JMP NEXT
37 ; вирiвнювання часу передачi 0 ? 1
38 002D 77 NEXT: RR A ;
39 002E 14 37 CALL DELAY
40 0030 E9 23 DJNZ R1,LOOP
41 0032 8A 01 ORL P2,#1 ; Встановлення Р1.0
42 0034 14 37 CALL DELAY ; Очикування
43 0036 83 RET
44
45 DELAY: ; Просто 10 холостих команд
46 0037 00 NOP
47 0038 00 NOP
48 0039 00 NOP
49 003A 00 NOP
50 003B 00 NOP
51 003C 00 NOP
52 003D 00 NOP
53 003E 00 NOP
54 003F 00 NOP
55 0040 00 NOP
56 0041 83 RET
57 0042 ends
Рис. 1- Виконання програми