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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 20:26   #1
yurassik
Новичок
Джуниор
 
Регистрация: 19.04.2010
Сообщений: 2
По умолчанию Паскаль = Ассемблер.

Уважаемые форумчане, есть задача:
i:=1;
k:=1024;
repeat
if ((i*i+k) or 9)=3 then i:=i*(i+k) else k:=k-i
until i>k;

Прога на паскале. Нужно реализовать данный фрагмент на ассемблере. Ответы и на паскале и на ассемблере должны быть одинаковыми. У меня не выходит. Направьте меня пожалуйста!
Я сделал это так, но похоже неправильно:

program kontr1;
uses crt;
var i,k:word;
begin
clrscr;
asm
mov i,1
mov k,1024
@cycle:
mov ax,i
mul i
mov bx,ax
add bx,k
or bx,9
cmp bx,3
je @then
mov ax,i
sub k,ax
jmp @end
@then:
mov ax,i
add ax,k
mul i
mov i,ax
@end:
cmp ax,k
ja @cycle
end;
writeln ('i=',i,' k=',k);
i:=1;
k:=1024;
repeat
if ((i*i+k) or 9)=3 then i:=i*(i+k) else k:=k-i
until i>k;
writeln ('i=',i,' k=',k);
readln;
end.

Заранее спасибо
yurassik вне форума Ответить с цитированием
Старый 19.04.2010, 20:52   #2
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Код:
     mov eax,1 
     mov edx,1024
l3:  mov ecx,eax
     imul ecx,eax
     add ecx, edx
     or  ecx,9
     cmp  ecx,3
     jnz     l1
     lea     ecx, [edx+eax]
     imul    ecx, eax
     mov     eax, ecx
     jmp     l2
l1:  sub     edx, eax
l2:  cmp     edx, eax
     jnl     l3
     ret
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 20.04.2010, 10:59   #3
yurassik
Новичок
Джуниор
 
Регистрация: 19.04.2010
Сообщений: 2
Печаль

Спасибо огромное! Но к сожалению не получилось вставить этот код в паскалевскую программку а компилятора нет никакого... Мозгов нет. Но буду пробовать...

Последний раз редактировалось yurassik; 20.04.2010 в 11:43.
yurassik вне форума Ответить с цитированием
Старый 20.04.2010, 12:26   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

yurassik
В DOS-овском паскалевском комплекте должны быть ассемблер tasm и компилятор tlink, а в борландовском Дельфи -- ассемблер tasm32 и компилятор tlink32 и ilink32 -- ищи лучше!
Mikl___ вне форума Ответить с цитированием
Старый 21.04.2010, 11:48   #5
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от yurassik Посмотреть сообщение
@end:
cmp ax,k
ja @cycle
...
until i>k;
В until - условие выхода из цикла, а в ассемблерном варианте должно быть условие продолжения, то есть jbe.
Somebody вне форума Ответить с цитированием
Старый 21.04.2010, 23:45   #6
elka
Пользователь
 
Аватар для elka
 
Регистрация: 05.01.2010
Сообщений: 42
По умолчанию

А МОЖИТЕ НАПИСАТЬ ПОДРОБНЕЕ КАК ПОЛУЧИТЬ ЕХЕ-ШНИК?
Я СОХРАНИЛА С РАСШИРЕНИЕМ ASM ТЕКСТ ИЗ БЛОКНОТА, НО ЧТО ДЕЛАТЬ ДАЛЬШЕ? ЧТО ИМЕННО ЗАПУСКАТЬ ИЗ БОРЛАНД ПАСКАЛЯ???
ОБЪЯСНИТЕ, ПОЖАЛУЙСТА!!!
elka вне форума Ответить с цитированием
Старый 23.04.2010, 13:50   #7
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
Радость оОоОоОо

Цитата:
Сообщение от elka Посмотреть сообщение
А МОЖИТЕ НАПИСАТЬ ПОДРОБНЕЕ КАК ПОЛУЧИТЬ ЕХЕ-ШНИК?
Я СОХРАНИЛА С РАСШИРЕНИЕМ ASM ТЕКСТ ИЗ БЛОКНОТА, НО ЧТО ДЕЛАТЬ ДАЛЬШЕ? ЧТО ИМЕННО ЗАПУСКАТЬ ИЗ БОРЛАНД ПАСКАЛЯ???
ОБЪЯСНИТЕ, ПОЖАЛУЙСТА!!!
;МОЖИТЕ -> можЕте

Для начала - читать учебник по ассемблеру.
Потом - качать компилятор (masm, tasm, fasm, nasm, нужное подчеркнуть) и компилить
anyx вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер+Паскаль. КР. Работа с клавишами клавиатуры. newprog12 Фриланс 2 26.01.2010 21:25
Ассемблер и Паскаль maziLa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 05.12.2009 17:50
Модульое програмирование.Паскаль.Ассемблер. maziLa Помощь студентам 1 02.12.2009 05:51
Ассемблер и Паскаль не дружат... Monte-Kristo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 16.06.2009 13:03