Взаимодействие процессора с памятью и устройствами ввода-вывода. Функционирование ЭВМ
Автор: tanya_masao • Январь 8, 2019 • Лабораторная работа • 5,362 Слов (22 Страниц) • 497 Просмотры
Кафедра автоматизированных систем управления
ЛАБОРАТОРНАЯ РАБОТА №2
по Архитектуре вычислительных систем
«Взаимодействие процессора с памятью и устройствами ввода-вывода. Функционирование ЭВМ»
Студент | ||
Группа | ||
Руководитель | . |
Липецк 2017
ЗАДАНИЕ КАФЕДРЫ
Написать на языке ассемблера программу, выполняющую определенную задачу в соответствии с вариантом.
Вариант 4.
- Преобразование из двоично-десятичного кода в двоичную систему счисления.
- Ввод исходных данных с клавиатуры
- Вывод на экран результатов программы
- Звуковая сигнализация об ошибках
- Ход выполнения работы
1.1. Листинг программы
1 ;lab2.asm
2 0000 data segment
3 0000 data ends
4 ;??????? ??????
5 0000 code segment
6 assume cs:code, ds:data
7 0000 main:
8 0000 BA 0000s mov dx, data
9 0003 8E DA mov ds, dx
10 ;init video ram
11 0005 BA B800 mov dx, 0B800h
12 0008 8E C2 mov es, dx
13 000A 33 FF xor di, di ;videoram offset to 0,0
14 000C 33 D2 xor dx, dx ;input value will stored here
15 ;clear screen
16 000E B8 0720 mov ax, 0720h ;07 - black symbol on black background, 20 - ASCII space code
17 0011 B9 07D0 mov cx, 80*25 ;text screen size in words
18 0014 F3> AB rep stosw ;fill screen
19 0016 33 FF xor di, di
20 0018 B9 0010 mov cx, 16 ;num bits counter
21 001B inloop:
22 001B E4 60 in al, 60h ;read scan-code
23 001D 3A C3 cmp al, bl
24 001F 74 FA je inloop
25 0021 8A D8 mov bl, al
26 0023 3C 01 cmp al, 01h ; ESC
27 0025 75 03 jne NotEsc
28 0027 E9 009B jmp quit
29 002A NotEsc:
30 002A 3C 02 cmp al, 02h ; '1'
31 002C 74 0E je num1
32 002E 3C 0B cmp al, 0Bh ; '0'
33 0030 75 E9 jne inloop
34 0032 D1 E2 shl dx, 1 ; write 0
35 0034 26: C7 05 0730 mov es:[di], 0730h ; echo '0'
36 0039 EB 0B 90 jmp NxtNum
37 003C num1:
38 003C D1 E2 shl dx, 1 ; write 1
39 003E 83 CA 01 or dx, 1
40 0041 26: C7 05 0731 mov es:[di], 0731h ; echo '1'
41 0046 NxtNum:
...