Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


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

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2010, 19:45   #1
Exelence
 
Аватар для Exelence
 
Регистрация: 07.11.2010
Сообщений: 7
Восклицание Assembler (обратный код числа сохранить в стек)

Здравствуйте! Очень нужна помощь в решении задачи:

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

я не понимаю как вычислить обратный код числа и сохранить его в стек у меня получилось что-то вроде этого
(то есть обратный код числа 3 0011 и совпадает с прямым, а обратный код числа -3 0100)
в 12-ой строчке не представляю что делать(

1 model small
2 stack 100h
3 .data
4 xx dw -3
5 .code
6 start:
7 mov ax, @data
8 mov ds, ax
9 mov ax, xx
10 cmp ax, 0 ;сравнение с 0
11 JGE m1 ; если больше либо равно- перепрыгиваем
12 NEG xx ; изменение знака
13 mov ax, xx
14 m1:
15 push xx ; сохранение в стек
16 mov ax, 4c00h ; возврат управления
17 int 21h ; опирационной системе
18 end start ; конец программы с именем start
Exelence вне форума Ответить с цитированием
Старый 07.11.2010, 21:55   #2
Exelence
 
Аватар для Exelence
 
Регистрация: 07.11.2010
Сообщений: 7
По умолчанию

может есть какая-то функция берущая код числа или можно математически вычислить?
есть хоть какие-то мысли на эту тему?
Exelence вне форума Ответить с цитированием
Старый 07.11.2010, 22:11   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Что-то не очень понимаю что вам нужно сделать.
Из отрицательного числа получить положительное ?

Кажется понял.. Вам нужно использовать команду NOT а не NEG.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 07.11.2010 в 22:15.
Goodwin98 вне форума Ответить с цитированием
Старый 07.11.2010, 22:33   #4
Exelence
 
Аватар для Exelence
 
Регистрация: 07.11.2010
Сообщений: 7
По умолчанию

нет, это я так в программе написала...(это заведомо не верно)
вот например в памяти хранится число -6 надо его обратный код записать в стек.
Обратный код положительного числа совпадает с его прямым кодом, а обратный код отрицательного числа представляет инверсию прямого кода.
То есть, думаю, надо сделать проверку положительное или отрицательное число хранится в памяти, если положительное, то код числа записать в стек, если отрицательное, то как-то преобразовать или вытащить код этого числа и опять же сохранить в стек.
Exelence вне форума Ответить с цитированием
Старый 07.11.2010, 23:08   #5
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

как-то так ?
Код:
mov ax,XX
test ax,ax
jns m1

not ax

m1:
push ax
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 07.11.2010, 23:22   #6
Exelence
 
Аватар для Exelence
 
Регистрация: 07.11.2010
Сообщений: 7
По умолчанию

точно, наверно надо команду not использовать, а вот зачем test ax,ax я не поняла?
Exelence вне форума Ответить с цитированием
Старый 07.11.2010, 23:33   #7
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Здесь
Код:
test ax,ax
jns m1
это проверка на знак. Если число отрицательное то перехода не будет.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
код кнопок удалить,изменить,сохранить в foxpro Defa4ka Помощь студентам 1 08.11.2010 09:45
assembler числа AlexandrHouse Помощь студентам 4 01.02.2010 19:03
Вывод числа (assembler) andresan Помощь студентам 6 16.11.2009 12:38
Как сохранить html код из приложения? Robin_ Работа с сетью в Delphi 4 08.05.2008 16:04
сохранить код страницы в txt файл на компьютере DimkinStd Общие вопросы Delphi 8 28.01.2007 17:15


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS