Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
halif
3 / 3 / 0
Регистрация: 04.04.2012
Сообщений: 26
1

Сложение четырехбайтных чисел

05.04.2012, 00:19. Просмотров 1588. Ответов 2
Метки нет (Все метки)

нужно сложить три данных числа с учетом переноса в старший разряд т.к младшие слова четырехбайтного числа при сложении дают единицу то ее нужно перенести в старший байт числа. Далее я должен прогу прогнать через td и соответственно в каких то шагах будет появляться результат сложения всех младших слов числа в ax а потом и всех старших байтов там же в ax.(или же можно как то увидеть полное получившееся число которое хранится в Result?) там еще ввод символа но он реализован интересует сложение, пожалуйста комментируйте строчки вашего предложенного кода это первая программа на ассемблере так что я еще плохо ориентируюсь в нем.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
code segment
assume cs: code, ds:data, ss: stek
start: 
mov ax, data
mov ds, ax
mov ax,word ptr [X]
mov bx,word ptr [Y]
add ax,bx
mov word ptr [Result],ax
 
mov ax,word ptr [X+2]
mov bx,word ptr [Y+2]
adc ax,bx
mov word ptr [Result+2],ax
 
mov bx,word ptr [Z]
add word ptr [Result],bx
mov word ptr [Result],ax
 
mov bx,word ptr [Z+2]
adc word ptr [Result+2],bx
mov word ptr [Result+2],ax
mov ax,word ptr [Result+2]
mov ax, word ptr [Result]
 
mov ah,1 ;функция 1 сервиса DOS: ввод символа с эхом c клавиатуры
int 21h ;вызов прерывания
mov [Chr],al ;запись символа «1» в память 31h
mov ah, 9 ;функция 9 сервиса DOS: вывод строки на CON (до '$')
mov dx, offset Msg ;запись в регистр dx начального адреса строки
int 21h ;вызов прерывания
mov ax, 4c00h ;запись номера функции завершения работы программы с ко-дом 0
int 21h ;вызов прерывания
code ends
data Segment
    X dd 189547h        ; число 189547h
    Y dd 129436h                ; число 129436h
    Z dd 125121h        ; число 125121h 
    Result dd (?)       ; результат
    Msg db 13,10,'Enter:'
    Chr db '0', '$'
data ends
stek segment stack
    dw 128 dup (?)
stek ends
end Start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 00:19
Ответы с готовыми решениями:

Составить программу добавление четырехбайтных чисел без знака
помогите пожалуйста ассемблер вообще забыл.

Сложение чисел
Написать программный код, выполняющий сложение следующих чисел: -56 и +89.

Сложение чисел
.model tiny .code org 100h .286 start: mov dx,offset mes1 mov ah,9 int...

сложение чисел
только начал учить ассемблер. Вот код: %TITLE "Primer 1" IDEAL ...

Сложение 5 чисел
Нужно реализовать сложение 5 чисел, покажу как это выглядит на pascal: var ...

2
Mikl___
Автор FAQ
11895 / 6183 / 572
Регистрация: 11.11.2010
Сообщений: 11,195
06.04.2012, 05:58 2
halif, проще нужно — складываем X и Y используя 16-разрядный регистр результат помещаю в 6 байтовый Result
Assembler
1
2
3
4
5
6
7
8
9
10
11
mov word ptr Result+2,0
mov word ptr Result+4,0
mov ax, word ptr X
add ax, word ptr Y
adc word ptr Result+2,0; если будет перенос - запишется единица
mov word ptr Result,ax
mov ax, word ptr X+2
add ax, word ptr Y+2
adc word ptr Result+4,0; если будет перенос - запишется единица
add word ptr Result+2,ax
adc word ptr Result+4,0; возможен еще один перенос
Проверяю калькулятором на максимальных 4-байтных числах FFFF.FFFF + FFFF.FFFF = 1.FFFF.FFFE
0
halif
3 / 3 / 0
Регистрация: 04.04.2012
Сообщений: 26
06.04.2012, 23:17  [ТС] 3
ок понял, не владах я с TD какой комбинацией клавиш вызвать окно и ввести адрес что бы я увидел получившееся число после сложения трех чисел и в общем можно по подробней где отображается адрес получившейся суммы. Пожалуйста по шагам объясните новичку=)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 23:17

Сложение чисел (dq)
Hello, world! Задача - простейшая. Сложить 3 числа - dw,dd,dq(16,32,64 бита)....

Сложение больших чисел
Читаю книгу Пирогова "Ассемблер на примерах". С книги набрал код: #include...

Сложение и вычитание чисел
Добрый вечер! .model small .stack 100h .data varA dw 5 varB dw 2 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru