Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Версии MASM_ 
V
    Опции темы
GLeBaTi
Дата 20.4.2010, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 1.2.2008
Где: г.Чебоксары

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



Код

    .386
    .model flat, stdcall
    option casemap :none
    include \masm32\include\masm32.inc
    include \masm32\include\kernel32.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\kernel32.lib
    .code
    start:
      print "Hello world"
      exit
    end start

Код

include io.asm
   data segment
        x db 'Hello world!', '$'
   data ends
  stack segment stack
        db 128 dup (?)
  stack ends
   code segment
        assume cs: code, ds: data, ss: stack
 start: mov ax, data
        mov ds, ax
        lea dx, x
        outstr
        finish
   code ends
        end start

Код

CSEG segment
org 100h
_BEGIN:
    mov ah, 9h
    mov dx, offset msgg
    int 21h
    int 20h

    msgg db 'Hello!$'
CSEG ends
end _BEGIN


Вопрос: Какой из этих вариантов кода лучше использовать, чем они отличаются, какой из них кроссплатформенный ?

Это сообщение отредактировал(а) GLeBaTi - 20.4.2010, 16:28
PM MAIL   Вверх
GoldFinch
Дата 20.4.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



на асме не бывает кроссплатформенного кода.
PM MAIL ICQ   Вверх
GLeBaTi
Дата 20.4.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 1.2.2008
Где: г.Чебоксары

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



в MASM32 я могу писать код, который выполнится и на unix и на win32 ?
И на каких процессорах у меня будет работать первый код ?

Это сообщение отредактировал(а) GLeBaTi - 20.4.2010, 17:56
PM MAIL   Вверх
airyashov
Дата 21.4.2010, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GLeBaTi @ 20.4.2010,  17:56)
в MASM32 я могу писать код, который выполнится и на unix и на win32 ?
И на каких процессорах у меня будет работать первый код ?

только винда судя по коду


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
Mikl_
Дата 21.4.2010, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



GLeBaTi, 
если создается EXE PE-формата, DLL,SYS  то такой файл предназначен для работы Win32
если создается ELF то для Linux
если создается  MZ-EXE или COM то для DOS

в данном случае
1 пример  -- EXE для Windows
2 пример -- EXE для DOS  outstr и finish это процедуры описанные в файле io.asm
3 пример -- COM-файл
PM MAIL   Вверх
GLeBaTi
Дата 21.4.2010, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 1.2.2008
Где: г.Чебоксары

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



Значит, чтобы мне вывести текст на экран в разных ОС, мне надо вызывать разные ф-ии ?
(Win - print, DOS- int 21h, Linux - int 0x80, call kputs) -  чем они отличаются ?(вроде одинаково выводят на экран, но разный синтаксис)

Это сообщение отредактировал(а) GLeBaTi - 21.4.2010, 10:19
PM MAIL   Вверх
Mikl_
Дата 21.4.2010, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



GLeBaTi, 
в Win32 не функции print -- там всё делается через API-функции, для простейшего вывода текста можно использовать 6 разных функций
ExtTextOut, TextOut, TabbedTextOut, PolyTextOut, DrawText, DrawTextEx, либо представить текст, как самостоятельное окошко типа STATIC
Для вывода текста, например функцией TextOut, нужно через стек передать функции пять разных параметров: координаты X и Y, куда будет выведен текст, строка, которую будут выводить, количество символов, которые должны быть выведены, контекст устpойства 
Цитата
чем они отличаются ?(вроде одинаково выводят на экран
 а отличаются они тем что принадлежат разным ОС, если бы операционные системы были устроены внутри одинаково, тогда зачем плодить зоопарк разных ОС? 
Вопрос напоминает рассуждение ребенка: "И зачем нужны английский, китайский, арабский, если я понимаю только русский?" ответ будет такой "Так сложилось..." smile 
PM MAIL   Вверх
GLeBaTi
Дата 21.4.2010, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 1.2.2008
Где: г.Чебоксары

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



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

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

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


 




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


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

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