Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2012, 15:15   #1
илья001
Пользователь
 
Регистрация: 18.05.2011
Сообщений: 21
По умолчанию Сложение трехбайтных чисел в Ассемблере

АССЕМБЛЕР. нужно сложить Res=X+Y, X и Y я сам задаю в сегменте данных x,y трехбайтные. Первый раз пытаюсь создать прогу на ассемблере с двухбайтными и четырехбыйтными а вот с трехбайтными даже не знаю =( Мысль такова сложу однобайтные потом двухбайтные ну и нужно в начало поставить однобайтное типо начало числа ну и после него двухбайтное конец числа.
Код:
code segment ; Сегмент кода программы

assume cs:code, ds:data, ss:stek ; устанавливаю соответствие м/д сегментными регистрами и программными сегментами

start:

mov ax,data  ; загрузка в несегментный регистр ax соответствующего сегмента памяти
mov ds,ax    ; в сегментный регистр ds загрузка ax

mov al,[x1]  ; записали в ax переменную x
add al,y1    ; сложение x1 и y1 результат в al  
mov[Res],al  ; запись результата al в Res  
mov ax,[x2]  ; запись x2 в ax
mov bx,[y2]  ; запись y2 в bx
add ax,bx    ; сложение ax и bx результат в ax

 
 mov  ah,1           ;ввод символа с клавиатуры
 int  21h            ;прерывание 
 mov  [Chr],al       ;Производим вывод символа находящегося по адресу Chr
 mov ah, 2           ;ФУНКЦИЯ 2 сервиса DOS
 mov  dx, offset Msg ;вывод символа на экран
 int 21h             ;прерывание
 mov ax, 4c00h       ;Завершение программы с кодом 0
 int 21h             ;прерывание 
code ends    

data Segment  
x1 db 0AFh   ;числа даны трехбайтные
y1 db 0AEh  
x2 dw 0FF88h,0077h 
y2 dw 0FF88h,0077h 
Res   dw  0,0         
Msg db   13,10,'Res'   
Chr  db   '0', '$' 
data ends    
; либо все представить в виде data Segment  
;x  dw 0FF88h,0077h   ;числа даны трехбайтные
 ; db 0AFh 
;y  dw 0FF88h,0077h 
 ;  db 0AEh   но как тогда складывать ?

stek segment stack   
  dw  128 dup (?)   
stek ends    
end Start

Последний раз редактировалось илья001; 25.03.2012 в 15:41.
илья001 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение двух десятичных положительных чисел. целых чисел))) PEro_man Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.12.2010 12:40
Сложение длинных чисел C++ LaDark Общие вопросы C/C++ 0 15.11.2010 18:56
сложение чисел s2dentishe Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 14.06.2010 21:33
сложение 10 двоичных чисел sssvetlaya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 10.11.2009 09:32
сложение двух чисел pif Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 15.02.2009 12:51