Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти значение выражения в ассемблере 
:(
    Опции темы
Trakker
Дата 29.10.2016, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.10.2016

Репутация: нет
Всего: нет



Y=2А/C+B/A
пробовал так не компилируется(дали задание но ничего про регистры не рассказали, ошибка в них как я думаю)
program sum_bz;сумма для без знаковых
var A,C,Y:byte;
B:word;
writeln('vv A,B i C');
readln(A,B,C);
asm
mov Al,A
xor AH,AH
shl Al,1
div C
mov BX,B
div A
ADD AL,BX
mov Y,AL
end;
writeln('y=',Y);
end.
-----------------------------------
попробовал если заносить в BX А, уже запускалось, но считалось не правильно(не могу привести тот пример забыл сохранить).Подскажи где тут ошибка, и как делать этого же выражение для знаковых пожалуйста
PM MAIL   Вверх
_zorn_
Дата 29.10.2016, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Это паскаль, а не асемблер.
Хоть и большая часть программы на ассемблере. Т.е. компилировать нужно паскалем/делфи и производными.
Турбопаскаль возьми.
Асмовый код не смотрел, так что не знаю правильный он или нет.
PM MAIL   Вверх
Trakker
Дата 29.10.2016, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.10.2016

Репутация: нет
Всего: нет



Цитата(_zorn_ @ 29.10.2016,  16:38)
Это паскаль, а не асемблер.
Хоть и большая часть программы на ассемблере. Т.е. компилировать нужно паскалем/делфи и производными.
Турбопаскаль возьми.
Асмовый код не смотрел, так что не знаю правильный он или нет.

Да, асм это вставка я все таки сделал для без знаковых
asm
mov al,a
xor ah,ah
shl ax,1
div c
mov bl,al
mov ax,b
div a
add al,bl
mov y,al
end;

 как сделать для знаковых?
Да, я пользуюсь турбопаскалем через досбокс

Это сообщение отредактировал(а) Trakker - 29.10.2016, 19:34
PM MAIL   Вверх
_zorn_
Дата 30.10.2016, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Знаковые/беззнаковые отличаются одним старшим битом. В вашем случае обзовите то что хотите вывести знаковым типом и все срастется скорей всего.
Хотя не факт. Потому что старший бит он и в африке старший.
А у вас al,ah,ax и т.п. А знак находится тут eax & 0x80000000
Для x86 конечно...

PS для справки
eax = 0x12345678
ax = 0x5678
ah = 0x56
al = 0x78

Это сообщение отредактировал(а) _zorn_ - 30.10.2016, 13:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.1094 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.