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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2007, 21:02   #1
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
Радость Ассемблер в Delphi

Читаю учебник по ассемблеру. Дошел до главы "Ваша первая программа", которая должна вывести легендарное сообщение "Hello World", а там следующие строки:

Код:
.386 
.model flat 
 
extrn ExitProcess:PROC 
extrn MessageBoxA:PROC 
 
.data 
 
Ttl db "First ASSEMBLER program",0h 
Msg db 'Hello, World!!!!',0h 
 
.code 
 
start: 
    push 0h 
        push offset Msg 
        push offset Ttl 
        push 0h 
        call MessageBoxA 
        push 0h 
        call ExitProcess 
end    start 
Вставляю его по наивности в Delphi в консоль между asm и end; и получаю кучу ошибок при компиляции.
как правильно в Delphi в консоле реализовать на ассемблере вывод сообщения "Hello World" ?
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 22.07.2007, 10:49   #2
Net
;-)
Пользователь
 
Регистрация: 18.07.2007
Сообщений: 69
По умолчанию

Даже забудьте подобный код вставлять.
В Delphi свой ассемблер, называется BASM (borland asm), там очень урезан метафункционал, наподобии первых пяти строчек вашей программы. Тот код, что вы привели, должен скомпилироваться на fasm, tasm и подобных ассемблерах.

в дельфе вот так попробуйте:

Код:
procedure TfrmMain.Button1Click(Sender: TObject);
var msg:string;
    title:string;
begin
    msg:='Hello world';
    title:='title';
    asm          // параметры запихиваются в стек справа налево
        push 0
        push title
        push msg
        push 0
        call MessageBoxA
    end;
end;
Net вне форума Ответить с цитированием
Старый 22.07.2007, 11:53   #3
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
Вопрос и что выбрать?

подскажи мне компилятор для fasm и tasm? Да и вообще какой assembler лучше изучать?
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 22.07.2007, 11:57   #4
Net
;-)
Пользователь
 
Регистрация: 18.07.2007
Сообщений: 69
По умолчанию

борландовский tasm уже лет 10, если не ошибаюсь, как не развивается. ныне перспективный flat assembler (fasm).
я качал его здесь http://fasmassembler.narod.ru/
Net вне форума Ответить с цитированием
Старый 22.07.2007, 12:07   #5
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию Благодарствую

Благодарствую
Скачал, сижу разбираюсь
Мир не без добрых людей
Еще раз убедился )))
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 20.12.2008, 18:49   #6
Веруня
Новичок
Джуниор
 
Регистрация: 20.12.2008
Сообщений: 1
По умолчанию

А вы не знаете,как написать программу,которая будет выводить на экран текущую дату?
Веруня вне форума Ответить с цитированием
Старый 20.12.2008, 20:31   #7
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от Веруня Посмотреть сообщение
А вы не знаете,как написать программу,которая будет выводить на экран текущую дату?
А на каком языке должна быть реализована эта программа?
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 21.12.2008, 00:21   #8
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
По умолчанию

На Паскале это выглядт так
Код:
Uses WinDos;
Const Days : Array [0..6] Of String[11] =
     ('Воскресенье', 'Понедельник', 'Вторник',
      'Среда', 'Четверг', 'Пятница', 'Суббота');
Var Y, M, D, Dow, ho, mi, se, s1:Word;
begin
  GetDate(Y, M, D, Dow);
  GetTime(ho,mi,se,s1);
  Writeln('Год:',Y,' месяц:',M,' число:',D,' день недели:',days[dow],'час:',ho,' минута:', mi,' секунда:',se,' сотая часть секунды:',s1,';');
  readln;
end;
pomoshnic вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер farxad Помощь студентам 6 11.09.2016 14:19
Ассемблер InTest Фриланс 1 12.12.2007 02:05
USB 2.0. ассемблер wiskas Помощь студентам 1 22.02.2007 01:30