- •Микропроцессоры в системах защиты информации
- •Общие методические указания
- •Лабораторная работа 1
- •Выполненние работы Программа 1.1
- •Программа 1.2
- •Программа 1.3
- •Программа 1.4
- •Лабораторная работа 2
- •Выполненние работы Программа 2.4
- •Программа 2.5
- •Лабораторная работа 3
- •Выполненние работы Программа 3.1
- •Лабораторная работа 4
- •Выполненние работы Программа 4.1
- •Лабораторная работа 5
- •Выполненние работы Программа 5.1
- •Программа 5.3
- •Программа 5.4
- •Лабораторная работа 6
- •Выполненние работы Программа 6.1
Программа 1.3
TITLE СЛОЖЕНИЕ ЦЕЛЫХ БЕЗЗНАКОВЫХ ЧИСЕЛ
TITLE ПОВЫШЕННОЙ ТОЧНОСТИ
; Определение сегмента стека
SSEG SEGMENT PARA STACK 'STACK'
DB 256 DUP(0)
SSEG ENDS
; Определение сегмента данных для слагаемых и результата
DSEG SEGMENT PARA PUBLIC 'DATA'
SLOG1 DD 1 DUP (0) ; Слагаемое, длина двойное слово
SLOG2 DD 1 DUP (0) ; Слагаемое, длина двойное слово
SUM DQ 1 DUP(0) ; Результат, длинна 5 байтов
DSEG ENDS
; Определение сегмента кода программы
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
SUMMA PROC FAR
mov ax,DSEG ; Определение адреса сегмента DATA
mov ds,ax ; Пересылка в сегментный регистр DS
Start: lea si,SLOG1 ; Получение смещения SLOG1 в SI
lea di,SLOG2 ; Получение смещения SLOG2 в DI
lea bx,SUM ; Получение смещения SUM в BX
clc ; Очистка флага переноса.
mov cx,0
mov ax,[si] ; Сложение SLOG1 и SLOG2 с учетом
adc ax,[di] ; бита переноса.
mov [bx],ax ; Сохранение результата
inc si ; Вычисление смещения следующего
inc si ; слова слагаемых без изменения
inc di ; бита переноса предыдущего сложения
inc di
mov ax,[si]
adc ax,[di]
mov [bx+2],ax
jnc Lmem ; Был перенос? Нет - переход не метку
inc cx ; Да - создать старший байт.
Lmem: mov [bx+4],cx ; Сохранить старший байт в памяти
jmp Start
SUMMA ENDP
CSEG ENDS
END SUMMA
|
1 слагаемое |
2 слагаемое |
результат |
|||
десятичное |
шестнадцат. |
десятичное |
шестнадцат. |
десятичное |
шестнадцат. |
|
1 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
Таблица 1.1.3
Команда |
содержимое регистров |
|||||||||||||
аx |
bx |
cx |
dx |
cs |
ds |
di |
si |
Флаги |
||||||
cf |
zf |
sf |
pf |
af |
df |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|