- •Курский государственный технический университет Кафедра конструирования и технологии эвс
- •Програмирование на языке ассемблера Методические указания
- •Введение
- •Эмулятор ос cp/m
- •Методические указания Контрольные вопросы
- •Лабораторная работа 2 "Исследование отладчика sid. Программирование в кодах 8080".
- •Лабораторная работа 3 "Линейное сложение и вычитание многобайтовых чисел ".
- •Цель работы
- •Лабораторная работа 5 "Ассемблирование и загрузка программ на языке ассемблера 8080". Цель работы
- •Лабораторная работа 6 "Вывод информации на экран дисплея с использованием системных вызовов ос cp/m".
- •Лабораторная работа 7 "Ввод информации с клавиатуры с использованием системных вызовов ос cp/m".
- •Лабораторная работа 8 "Исследование программ. Дизассемблирование".
- •Приложение 1 Кодировка команд ассемблера 8080 коды команд микропроцессоров i8080/i8085
- •Приложение 3 Ассемблер asm и макроассемблер mac. Справочные данные
- •Приложение 4 Сведения об ос cp/m
- •1.Резидентные команды
- •2. Характеристики dos
- •3. Обращение к dos. Входная и выходная информация.
- •Функции dos для управления консолью.
- •Приложение 5 Кодировки символов кодировка символов
Приложение 1 Кодировка команд ассемблера 8080 коды команд микропроцессоров i8080/i8085
1 \ 2 |
_0 |
_1 |
_2 |
_3 |
_4 |
_5 |
_6 |
_7 |
_8 |
_9 |
_A |
_B |
_C |
_D |
_E |
_F |
0_ |
NOP |
LXI B,& |
STAX B |
INX B |
INR B |
DCR B |
MVI B,# |
RLC |
__ |
DAD B |
LDAX B |
DCX B |
INR C |
DCR C |
MVI C,# |
RRC |
1_ |
__ |
LXI D,& |
STAX D |
INX D |
INR D |
DCR D |
MVI D,# |
RAL |
__ |
DAD D |
LDAX D |
DCX D |
INR E |
DCR E |
MVI E,# |
RAR |
2_ |
RIM |
LXI H,& |
SHLD* |
INX H |
INR H |
DCR H |
MVI H,# |
DAA |
__ |
DAD H |
LHLD * |
DCX H |
INR L |
DCR L |
MVI L,# |
CMA |
3_ |
SIM |
LXI SP,& |
STA * |
INX SP |
INR M |
DCR M |
MVI M,# |
STC |
__ |
DAD SP |
LDA * |
DCX SP |
INR A |
DCR A |
MVI A,# |
CMC |
4_ |
MOV B,B |
MOV B,C |
MOV B,D |
MOV B,E |
MOV B,H |
MOV B,L |
MOV B,M |
MOV B,A |
MOV C,B |
MOV C,C |
MOV C,D |
MOV C,E |
MOV C,H |
MOV C,L |
MOV C,M |
MOV C,A |
5_ |
MOV D,B |
MOV D,C |
MOV D,D |
MOV D,E |
MOV D,H |
MOV D,L |
MOV D,M |
MOV D,A |
MOV E,B |
MOV E,C |
MOV E,D |
MOV E,E |
MOV E,H |
MOV E,L |
MOV E,M |
MOV E,A |
6_ |
MOV H,B |
MOV H,C |
MOV H,D |
MOV H,E |
MOV H,H |
MOV H,L |
MOV H,M |
MOV H,A |
MOV L,B |
MOV L,C |
MOV L,D |
MOV L,E |
MOV L,H |
MOV L,L |
MOV L,M |
MOV L,A |
7_ |
MOV M,B |
MOV M,C |
MOV M,D |
MOV M,E |
MOV M,H |
MOV M,L |
HLT |
MOV M,A |
MOV A,B |
MOV A,C |
MOV A,D |
MOV A,E |
MOV A,H |
MOV A,L |
MOV A,M |
MOV A,A |
8_ |
ADD B |
ADD C |
ADD D |
ADD E |
ADD H |
ADD L |
ADD M |
ADD A |
ADC B |
ADC C |
ADC D |
ADC E |
ADC H |
ADC L |
ADC M |
ADC A |
9_ |
SUB B |
SUB C |
SUB D |
SUB E |
SUB H |
SUB L |
SUB M |
SUB A |
SBB B |
SBB C |
SBB D |
SBB E |
SBB H |
SBB L |
SBB M |
SBB A |
A_ |
ANA B |
ANA C |
ANA D |
ANA E |
ANA H |
ANA L |
ANA M |
ANA A |
XRA B |
XRA C |
XRA D |
XRA E |
XRA H |
XRA L |
XRA M |
XRA A |
B_ |
ORA B |
ORA C |
ORA D |
ORA E |
ORA H |
ORA L |
ORA M |
ORA A |
CMP B |
CMP C |
CMP D |
CMP E |
CMP H |
CMP L |
CMP M |
CMP A |
C_ |
RNZ |
POP B |
JNZ * |
JMP * |
CNZ * |
PUSH B |
ADI # |
RST 0 |
RZ |
RET |
JZ * |
__ |
CZ * |
CALL * |
ACI # |
RST 1 |
D_ |
RNC |
POP D |
JNC * |
OUT N |
CNC * |
PUSH D |
SUI # |
RST 2 |
RC |
__ |
JC * |
IN N |
CC * |
__ |
SBI # |
RST 3 |
E_ |
RPO |
POP H |
JPO * |
XTHL |
CPO * |
PUSH H |
ANI # |
RST 4 |
RPE |
PCHL |
JPE * |
XCHG |
CPE * |
__ |
XRI # |
RST 5 |
F_ |
RPO |
POP PSW |
JP * |
DI |
CP * |
PUSH PSW |
ORI # |
RST 6 |
RM |
SPHL |
JM * |
EI |
CM * |
__ |
CPI # |
RST 7 |
N - номер порта ввода-вывода (D8) ПРИМЕРЫ: Команда STAX D имеет код операции 12;
& - двухбайтовый операнд (D16) код операции CA соответствует команде JZ ADR.
* - двухбайтовый операнд (ADR) PSW включает аккумулятор A и регистр флагов F
# - однобайтовый операнд (D8) Команды SIM и RIM относятся только к i8085
ФОРМАТ РЕГИСТРА ФЛАГОВ F
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
S |
Z |
- |
AC |
- |
P |
- |
CY |
знак |
нуль |
|
вспомог. перенос |
|
четность |
|
перенос |
ПРИЛОЖЕНИЕ 2 отладчики DDT и SID. Справочные данные
DDT
ddt загружается вместо ccp
Форматы команды:
ddt
ddt имя файла.hex
ddt имя файла.com
Управляющие символы:
rubout стирание последнего введенного символа
ctrl-u стирание введеной строки
ctrl-c перезагрузка cp/m
Команды:
as выдача ассемблерной мнемоники с операндами, s-стартовый адрес
d вывод содержимого памяти в шестнадцатеричных кодах; начиная с данного адреса; выводится 16 строк.
ds вывод содержимого памяти, начиная с адреса s
ds,f вывод содержимого памяти, начиная с адреса s и кончая f.
fs,f,c заполнить область памяти, начиная с адреса s и кончая адресом f шестнадцатеричной константой c.
g начать выполнение программы с текущего адреса
gs начать выполнение программы с адреса s.
gs,b начать выполнение программы с адресаs и остановиться по адресу b.
gs,b,c здесь заданы две точки остановки: b и c.
g,b начать выполнение программы с текущего адреса с остановкой по адресу b.
g,b,c начать выполнение программы с текущего адреса с остановкой по адресу b или c.
i имя файла занести в управляющий блок файла заданное имя файла.
i имя файла.тип файла занести в управляющий блок файла заданное имя и тип файла.
l распечатать 12 строк дизассемблированных машинных кодов, начиная с текущего адреса.
ls распечатать 12 строк, начиная с адреса s.
ls,f распечатать строки дизассемблирования, начиная с адреса s и кончая адресом f.
ms,f,d переслать в область памяти, начинающуюся с адреса s и кончающуюся адресом f, область памяти начинающуюся с адреса d.
r[b] считать с диска файл с заданным в fcb именем (см. Команду i) в tpa; b-необязательный параметр смещения.
ss просмотр и модификация области памяти, начиная с адреса s.
t трассировать один шаг программы.
tn трассировать n шагов программы.
x вывести на консоль содержимое всех регистров.
xr вывести на консоль (и возможно изменить) содержимое регистра r.
SID
A Assemble M Move
C Call P Pass Point
D Display R Read
F Fill Memory S Set Memory
G Go T Trace
H Hex U Untrace
I Input Line X Examine
L List Mnemonics