Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 861

/ вопрос открыт /

Всем привет!
Снова вопрос по присоединению OBJ файла, скомпилированного в TASM к проекту delphi.
Никто не вкурсе почему не работает команда ROL, в то время как команда ROR работает превосходно, при том что если набирать во встроенном асме то ROL работает.
Если кто знает как можно исправить, или где можно скачать нормальный TASM (WWW.WASM.ru уже пробывал) то пишите.

Приложение:
  1. ROLROR.asm
  2. =============================================
  3. title ROLROR for 32 byte
  4. .386p
  5. .MODEL FLAT, STDCall
  6.  
  7. ;===================================
  8.  
  9. .DATA
  10. EXTRN x:BYTE,y:BYTE
  11.  
  12. ;===================================
  13.  
  14. .CODE
  15. PUBLIC ROL1
  16. PUBLIC ROR1
  17.  
  18. ;===================================
  19.  
  20. ROL1 PROC
  21.  
  22. mov al,x
  23. mov cl,y
  24. ror al,cl
  25. mov x,al
  26.  
  27. ROL1 ENDP
  28.  
  29. ;===================================
  30.  
  31. ROR1 PROC
  32.  
  33. mov al,x
  34. mov cl,y
  35. ror al,cl
  36. mov x,al
  37.  
  38. ROR1 ENDP
  39.  
  40. ;===================================
  41.  
  42. END
  43.  
  44. =====================================
  45.  
  46. unit1.pas
  47. =====================================
  48. unit Unit1;
  49.  
  50. interface
  51.  
  52. uses
  53. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  54. Dialogs, StdCtrls, ExtCtrls;
  55.  
  56. type
  57. TForm1 = class(TForm)
  58. Edit1: TEdit;
  59. Label1: TLabel;
  60. Button1: TButton;
  61. Button2: TButton;
  62. RadioGroup1: TRadioGroup;
  63. procedure Button1Click(Sender: TObject);
  64. procedure Button2Click(Sender: TObject);
  65. private
  66. { Private declarations }
  67. public
  68. { Public declarations }
  69. end;
  70.  
  71. Procedure ROL1(); STDCall; EXTERNAL;
  72. Procedure ROR1(); STDCall; EXTERNAL;
  73. {$L ROLROR}
  74.  
  75. var
  76. Form1: TForm1;
  77. x,y:byte;
  78.  
  79. implementation
  80.  
  81. {$R *.dfm}
  82.  
  83. procedure TForm1.Button1Click(Sender: TObject);
  84. begin
  85. x:=StrToInt(Edit1.Text);
  86. case radiogroup1.ItemIndex of
  87. 0:y:=1;
  88. 1:y:=2;
  89. 2:y:=3;
  90. end;
  91. {asm
  92. mov cl,y
  93. rol x,cl
  94. end;}
  95. ROL1();
  96. Edit1.Text:=IntToStr(x);
  97. end;
  98.  
  99. procedure TForm1.Button2Click(Sender: TObject);
  100. begin
  101. x:=StrToInt(Edit1.Text);
  102. case radiogroup1.ItemIndex of
  103. 0:y:=1;
  104. 1:y:=2;
  105. 2:y:=3;
  106. end;
  107. ROR1();
  108. Edit1.Text:=IntToStr(x);
  109. end;
  110.  
  111. end.


SOA Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: SOA (статус: Посетитель)
Вопрос отправлен: 8 марта 2010, 13:54
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Паровоз

Здравствуйте, SOA!
Исправляйте текст:
title ROLROR for 32 byte
.386p
.MODEL FLAT, STDCall

;===================================

.DATA
EXTRN x:BYTE,y:BYTE

;===================================

.CODE
PUBLIC ROL1
PUBLIC ROR1

;===================================

ROL1 PROC
PUSHA ;сохраняем регистры
mov al,x
mov cl,y
rol al,cl
mov x,al
POPA ;восстанавливаем регистры
RET
ROL1 ENDP

;===================================

ROR1 PROC
PUSHA ;сохраняем регистры
mov al,x
mov cl,y
ror al,cl
mov x,al
POPA ;восстанавливаем регистры
RET
ROR1 ENDP

;===================================

END

Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 8 марта 2010, 22:43
Оценка за ответ: 5

Комментарий к оценке: Большое спасибо.

Мини-форум вопроса

Всего сообщений: 40; последнее сообщение — 11 марта 2010, 19:59; участников в обсуждении: 5.

Страницы: [« Предыдущая] [1] [2]

SOA

SOA (статус: Посетитель), 9 марта 2010, 14:10 [#21]:

ну так расскажи что там да как если знаешь как юзать на данном примере.
min@y™

min@y™ (статус: Доктор наук), 9 марта 2010, 17:38 [#22]:

Цитата (SOA):

ну так расскажи что там да как если знаешь как юзать на данном примере.

А чего тут рассказывать. Тебе было бы достаточно один раз пройтись дизассемблером по шагам по коду, чтобы понять, что выполняются последовательно две подпрограммы.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 9 марта 2010, 17:58 [#23]:

С тобой все ясно!
min@y™

min@y™ (статус: Доктор наук), 9 марта 2010, 18:08 [#24]:

Цитата (SOA):

С тобой все ясно!

Не понял, ты чего, реально хочешь писать проги на ассемблере и не пользоваться отладчиком?!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Егор

Егор (статус: 10-ый класс), 9 марта 2010, 18:23 [#25]:

а у него супермоск! ему отладчик не нужен :)))
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
SOA

SOA (статус: Посетитель), 9 марта 2010, 19:39 [#26]:

Я то реально помощь по решению вполне определенного вопроса хотел получить и реально получил, но не от вас двоих "Ыкспертов" о которых сложилось стойкое впечатление что на большее нежели плевать вопрошающему в спину, или пытаться указывать людям использовать тот или иной язык, потому что видети ли "ыксперт" этого языка то наверно и в глаза то не видел, но выбежал на сцену чтоб покричать ниочем вы двое не способны!
min@y™

min@y™ (статус: Доктор наук), 9 марта 2010, 20:12 [#27]:

Цитата (SOA):

потому что видети ли "ыксперт" этого языка то наверно и в глаза то не видел

Айяйяй, как нехоршо...
Про других не скажу, однако, я, например, в своё время написал отладчик. Да, ассемблер был не x86, а всего лишь микроконтроллерный (Intel8051FA и иже с ними), но это была полноценная интегрированная среда программирования с редактором и возможностью отладки не только по дизассемблеру, но и прямо по исходникам. В доказательство могу прислать исходники этого отладчика, они у меня сохранились.
Не надо наезжать на людей, которых ты не знаешь. Да и зачем? Я, что, тебе навредил чем-то?

З.Ы. А отладчиком тебе пользоваться придётся. Хочешь ты этого или нет.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 9 марта 2010, 21:01 [#28]:

Да и тоже помню как сейчас Windows написал на днях кончно не 98 но всеже.
Бу Га Га!!!
8)))))))))))))))))
min@y™

min@y™ (статус: Доктор наук), 9 марта 2010, 21:11 [#29]:

Цитата (SOA):

Да и тоже помню как сейчас Windows написал на днях кончно не 98 но всеже. Бу Га Га!!!

Выкладывай исходники с копирайтами, посмотрим, Билли!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 10 марта 2010, 09:05 [#30]:

Я на твои способности уже насмотрелся шума много толку НЕТ!
min@y™

min@y™ (статус: Доктор наук), 10 марта 2010, 09:20 [#31]:

Цитата (SOA):

Я на твои способности уже насмотрелся шума много толку НЕТ!

То есть, осмелюсь предположить, пользоваться отладчиком ты принципиально не желаешь и считаешь, что проще писать программы, а затем выкладывать их исходники на форумах для поиска ошибок?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
SOA

SOA (статус: Посетитель), 10 марта 2010, 19:48 [#32]:

Ха ха ха я от смеха чуть со стула не упал!
8))))))))))))))
Ты сам то понял что написал?
min@y™

min@y™ (статус: Доктор наук), 10 марта 2010, 20:35 [#33]:

Цитата (SOA):

Ты сам то понял что написал?

Конечно. Я всегда за свои слова отвечаю. А что, что-то не так?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Егор

Егор (статус: 10-ый класс), 10 марта 2010, 20:47 [#34]:

Цитата (min@y™):

То есть, осмелюсь предположить, пользоваться отладчиком ты принципиально не желаешь и считаешь, что проще писать программы, а затем выкладывать их исходники на форумах для поиска ошибок?

Цитата (SOA):

Ха ха ха я от смеха чуть со стула не упал!

что-то я не понял, в чём прикол? тоже поржать хочу.
SOA, поясни, пожалуйста
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
SOA

SOA (статус: Посетитель), 11 марта 2010, 12:33 [#35]:

Во первых отладчиком не пользуюсь только потому что только начал изучать асм по книге автора Голубь и кстати уже ПИСАЛ об этом.
Во вторых ответьте на простой вопрос: Для каких целей создан этот сайт?
min@y™

min@y™ (статус: Доктор наук), 11 марта 2010, 12:47 [#36]:

Цитата (SOA):

Для каких целей создан этот сайт?

Сюда надо задавать вопрос, в частности, когда выявить ошибку не удалось ни с помощью отладчика, ни с помощью справочников/хэлпов, ни с помощью поиска в интернете.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 11 марта 2010, 12:53 [#37]:

Голубь учит, что отладчик зло?
Выбросите такую книгу. Иногда отладчик - это единственное, что может помочь понять что же происходит в коде.
Галочка "подтверждения прочтения" - вселенское зло.
Егор

Егор (статус: 10-ый класс), 11 марта 2010, 13:59 [#38]:

Цитата (min@y™):

Если бы юзал отладчик - понял бы сразу, в чём ошибка.

Цитата (SOA):

ну так расскажи что там да как если знаешь как юзать на данном примере.

Цитата (min@y™):

А чего тут рассказывать. Тебе было бы достаточно один раз пройтись дизассемблером по шагам по коду, чтобы понять, что выполняются последовательно две подпрограммы.

Цитата (SOA):

С тобой все ясно!

хм... только сейчас дошло :)
просто-напросто SOA не умеет пользоваться отладчиком (кстати, он об этом написал прямо), а возможно и не знал о таком.
а когда попросил помощи в том, чтобы разобраться в этом вопросе, то ему было сказано, мол, ничё сложного. а потом ещё пошли нападки на то, что мол, не пользуешься отладчиком.
короче, небольшое недопонимание.
SOA, можешь задать новый вопрос :) примерно такого содержания "что есть отладчик и как им пользоваться". в ответ получишь кучу ссылок, которые, кстати, можешь нарыть и сам, воспользовавшись яндексом/гуглом. ну и на википедии можно глянуть
а вот так, в минифоруме спрашивать... тема необъятная очень, объяснять никто не захочет
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
SOA

SOA (статус: Посетитель), 11 марта 2010, 19:41 [#39]:

Я так смотрю люди ответственность за то что не знают ассемблер пытаются сволить на меня?!
Если все так хорошо знаете что ж не не ответили на вопрос та сразу мол вот у тебя там ret нехватает, а сейчас можете биться хоть до посинения поезд ушел!!!
Что до поста Егора, то нападки пошли не потом а сразу с первого вопроса(с чьей стороны догадаться не трудно).
min@y™

min@y™ (статус: Доктор наук), 11 марта 2010, 19:59 [#40]:

Цитата (SOA):

Если все так хорошо знаете что ж не не ответили на вопрос та сразу мол вот у тебя там ret нехватает

На это я тебе со всей ответственностью отвечу: потому что НИКТО НЕ ХОЧЕТ ЧИТАТЬ ЧУЖИЕ ИСХОДНИКИ!!! Выкладывать свои исходники, типа "вот моя прога, найдите ошибку" - это публичное посыпание головы пеплом. Типа, написал код сам, но не понял, как он работает. :))) Ты это понимаешь? Да я бы дворником пошёл работать вместо выкладывания своих бажных сорцов! Позорище...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 26 апреля 2026, 02:07
Выполнено за 0.03 сек.