Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Dick777
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 135
#1

Вычитание многобайтовых чисел

07.10.2015, 17:38. Просмотров 847. Ответов 1
Метки нет (Все метки)

Здравствуйте! Можете проверить на правильность вычитание двух 15-байтовых чисел ?
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
 .data
   x db 2Ah, 03h, 12h, 0DEh, 43h, 0E2h, 34h, 3Dh, 9Fh, 4Eh, 64h, 65h, 0FEh, 3Eh, 0A6h ; 15 байт 
  y db 15h, 0DDh, 34h, 4Bh, 57h, 7Fh, 0CDh, 0BCh, 4Ah, 34h, 8Eh, 6Ah, 42h, 6Ch, 0C4h ; 15 байт
  r db 16 dup(?) ; Для результата резервируется на один байт больше
 .code
 start:
 
MOV EAX,DWORD PTR x[0]
MOV EBX, DWORD PTR y[0]
SUB EAX, EBX
MOV DWORD PTR r[0],EAX 
 
MOV EAX,DWORD PTR x[4]
MOV EBX, DWORD PTR y[4]
SBB EAX, EBX
MOV DWORD PTR r[4],EAX
 
MOV EAX, DWORD PTR x[8]
MOV EBX, DWORD PTR y[8]
SBB EAX, EBX
MOV DWORD PTR r[8],EAX
 
XOR EAX,EAX
XOR EBX,EBX
MOV AX, WORD PTR x[12]
MOV BX, WORD PTR y[12]
SBB AX, BX
MOV WORD PTR r[12],AX
 
XOR EAX,EAX
XOR EBX,EBX
MOV AL, BYTE PTR x[14]
MOV BL, BYTE PTR y[14]
SBB AL, BL
MOV BYTE PTR r[14],AL
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2015, 17:38
Ответы с готовыми решениями:

Вычитание двух больших чисел
Здравствуйте. У меня не получается реализовать вычитание из меньшего числа...

Сложение и вычитание очень длинных чисел
Помогите написать прогу на ассемблере для сложения и вычитания очень длинных...

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

Вычитание упакованных BCD-чисел
здравствуйте, хотелось бы побольше узнать о правильном вычитании таких чисел,...

Вычитание двух 32-разрядных двоичных чисел
Добрый день! Понимаю, что задача простейшая, но все же вызывает затруднения....

1
proc3nt
волшебник
644 / 506 / 151
Регистрация: 26.05.2012
Сообщений: 1,429
08.10.2015, 02:57 #2
Лучший ответ Сообщение было отмечено Dick777 как решение

Решение

Цитата Сообщение от Dick777 Посмотреть сообщение
Можете проверить на правильность
если числа идут справа (старший байт) налево, то вполне правильно. но есть некоторые недочеты

Цитата Сообщение от Dick777 Посмотреть сообщение
XOR EAX,EAX
XOR EBX,EBX
после этих команд обнуляется флаг CF, что существенно влияет на дальнейшее использование команды sbb. и соответственно на конечный результат тоже. они здесь никакой погоды не делают и их можно спокойно удалять

обязательно нужно заполнить последний байт переменной результата. заполнение происходит в зависимости от последней операции вычитания (проверяется установка CF)
Assembler
1
2
3
4
5
6
7
8
9
10
11
jc one
 
zero:
mov byte ptr r[15],0
 
jmp exit
 
one:
mov byte ptr r[15],0FFh
    
exit:
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2015, 02:57

Сложение и вычитание чисел с плавающей точкой
Доброго времени суток. Прошу помочь. Нужно где-то откопать програмку:...

Вычитание неупакованных двоично-десятичных чисел
Нужна помощь!!!! задание:Вычитание неупакованных двоично-десятичных чисел...

Реализовать операцию деления целых чисел через вычитание
Реализовать операцию деления целых чисел через вычитание. В результате операции...


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

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

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