Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
20.03.2015
Размер:
35.33 Кб
Скачать

Программа сложения целых чисел размерностью двойное слово

.model small ; модель памяти, используемая для ЕХЕ

.stack 100h ; сегмент стека размером в 256 байт

.code

start: mov ax,@data ; сегментный адрес строки message

mov ds,ax ; помещается в DS

mov bx,offset a

loop: mov ax, [bx]

add ax,[bx+4]

mov [bx+8], ax

mov ax, [bx+2]

adc ax, [bx+6]

mov [bx+10], ax

mov ax,4C00h

int 21h ; функция DOS "завершить программу"

.data

A dd 00ACF77Fh ;определение данных

B dd 00AA3219h

C dd 0

end start

Программа сложения целых чисел произвольной размерности (до 10 байт)

.model small ; модель памяти, используемая для ЕХЕ

.stack 100h ; сегмент стека размером в 256 байт

.code

start: mov ax,@data ; сегментный адрес строки message

mov ds,ax ; помещается в DS

mov bx,offset NameA

xor ax,ax

mov al,length

div 2 ; делим размерность на 2

xor di,di ; индексный регистр = 0

loop: mov dx, [bx+di*2]

adc dx,[bx+di*2+10]

mov [bx+di*2+20], dx

inc di

cmp di, ax

jb loop ; продолжаем сложение пока di < ax

; jl loop ; эквивалентная команда «если меньше»

; jne loop ; эквивалентная команда «если не равно»

mov ax,4C00h

int 21h ; функция DOS "завершить программу"

; ********* сегмент данных

.data

NameA dt 0 ; данные размерностью 10 байт

NameB dt 0

NameC dt 0

Length db 0 ; размерность может быть меньше 10 байт,

; но кратна 2 байтам