Страница 1 из 11
Модератор форума: lyumer, Екатерина_Пашкова 
Форум учителей об образовании в России и мире » Архив » "Компьютерная тема" » Как написать программу "Hello, world!" на Ассемблере (здравствуй, мир ассемблера)
Как написать программу "Hello, world!" на Ассемблере
informatikДата: Понедельник, 20.04.2009, 19:38 | Сообщение # 1

Шамиль
Ранг: Аспирант (?)
Первый помощник
Группа: Пользователи
Сообщений:
963
Награды: 4
Статус: Offline
Предлагаю в этой теме обсудить вопрос о том, как написать самую первую программу на ассемблере. Допустим всем известную "Hello, world!".
Discuss!
Спасибо
SergeySmlДата: Вторник, 21.04.2009, 06:29 | Сообщение # 2

Сергей Игнатьевич
Ранг: Студент (?)
Группа: Я - учитель
Российская Федерация
Смоленск

Сообщений:
161
Награды: 1
Статус: Offline
А зачем?
Насколько я в курсе Ассемблер, как язык программирования для обучения учащихся, никогда всерьез не рассматривался...
Для обучения больше подходят процедурные языки: Лого, Паскаль, Бейсик, Си...
Спасибо
informatikДата: Вторник, 21.04.2009, 14:46 | Сообщение # 3

Шамиль
Ранг: Аспирант (?)
Первый помощник
Группа: Пользователи
Сообщений:
963
Награды: 4
Статус: Offline
SergeySml, в бейсике то всё просто. Достаточно набрать команду:
print "Hello world"
А как подобный результат получить на ассемблере?
Спасибо
SergeySmlДата: Вторник, 21.04.2009, 17:22 | Сообщение # 4

Сергей Игнатьевич
Ранг: Студент (?)
Группа: Я - учитель
Российская Федерация
Смоленск

Сообщений:
161
Награды: 1
Статус: Offline
Никогда этим не озадачивался...,
но знаю как получить такой код.
Возьмите систему Фортран. Напишите в ней нужную программу. (похоже на Бэйсик)
При первом ассемблировании получите код на Ассемблере, при втором - машинный...
Спасибо
informatikДата: Вторник, 21.04.2009, 23:11 | Сообщение # 5

Шамиль
Ранг: Аспирант (?)
Первый помощник
Группа: Пользователи
Сообщений:
963
Награды: 4
Статус: Offline
SergeySml, где лучше всего скачать фотран? Какую версию?
Я тут посмотрел в инете - есть версии Фортран 95, 2003.
Спасибо
SergeySmlДата: Среда, 22.04.2009, 06:46 | Сообщение # 6

Сергей Игнатьевич
Ранг: Студент (?)
Группа: Я - учитель
Российская Федерация
Смоленск

Сообщений:
161
Награды: 1
Статус: Offline
Желательно тот, что постарее.
А вообще-то приду в школу, книжку возьму, посмотрю...
Спасибо
NFLcДата: Пятница, 16.10.2009, 15:50 | Сообщение # 7

Сергей
Ранг: Магистр (?)
Группа: Пользователи
Должность: :)
Сообщений:
655
Награды: 3
Статус: Offline
фортран то зачем? smile

MASM32+WinAPI - самое оно smile

Code
.686
.model flat, stdcall
option casemap:none
includelib C:\masm32\lib\kernel32.lib
include C:\masm32\include\kernel32.inc
include C:\masm32\include\windows.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\user32.inc
.data
cWritten DWORD 0
stdout DWORD 0
_title db " "
mess db "Hello, world!"
.code
_st:
invoke MessageBox, 0, ADDR mess, ADDR _title, 0
invoke ExitProcess, 0
end _st
Спасибо
astronomДата: Суббота, 29.05.2010, 04:21 | Сообщение # 8

Алексей Шеллер
Ранг: Магистр (?)
Группа: Пользователи
Российская Федерация
Подольск

Сообщений:
562
Награды: 7
Статус: Offline
Quote (informatik)
как написать самую первую программу на ассемблере.

вы представляете, насколько хитромудр вывод строки на асме? biggrin
Это для высокоуровневых языков хелловорд - простейшая программа, на асме легче драйвер написать, чем вывести строчку на экран. biggrin
Спасибо
kolumДата: Среда, 02.06.2010, 14:13 | Сообщение # 9

Николай Пу
Ранг: Дошколенок (?)
Группа: Зарегистрированные
Российская Федерация
Хабаровск

Сообщений:
7
Награды: 0
Статус: Offline
Quote (astronom)
на асме легче драйвер написать, чем вывести строчку на экран

Вы это так пошутили? Уже же ответ есть:
Quote (NFLc)
MASM32+WinAPI - самое оно

Code

.386  
.model flat, stdcall  
ExitProcess PROTO      ,:DWORD  
MessageBoxA PROTO      ,:DWORD, :DWORD, :DWORD, :DWORD  
.data  
    MsgBoxCaption  db "Пример окна сообщения",0  
    MsgBoxText     db "Программировать на Ассемблере под Win32 очень просто!",0  
.const  
    NULL        equ  0  
    MB_OK    equ  0  
.code  
    Main:  
     INVOKE    MessageBoxA, NULL, ADDR MsgBoxText, ADDR MsgBoxCaption, MB_OK  
     INVOKE    ExitProcess, NULL  
    end Main  

Или вот для дос:

Code

code SEGMENT
  assume cs:code, ds:data
  mov ax,data ;установка
  mov ds,ax   ;регистра ds
  mov dx,offset mes ;вывод
  mov ah,9    ;сообщения  
  int 21h     ;на экран
  mov ah,10h  ;ожидание нажатия  
  int 16h     ;любой клавиши
  mov ax,4c00h ;выход из
  int 21h     ;программы
  code ENDS
data SEGMENT
mes db 'Hello привет ', 13,10,'$'
data ENDS
end
Спасибо
ГостьДата: Среда, 23.06.2010, 14:42 | Сообщение # 10

Группа: Гости
А никого не смущает, что ассемблер для каждой аппаратной платформы свой?
Спасибо
NFLcДата: Четверг, 27.01.2011, 23:31 | Сообщение # 11

Сергей
Ранг: Магистр (?)
Группа: Пользователи
Должность: :)
Сообщений:
655
Награды: 3
Статус: Offline
Гость, ну куда уж )

те кто пишут хелловорд, пишут обычно под ibmpc, x86)

Спасибо
Форум учителей об образовании в России и мире » Архив » "Компьютерная тема" » Как написать программу "Hello, world!" на Ассемблере (здравствуй, мир ассемблера)
Страница 1 из 11
Поиск:



Спорная ситуация с родителями или администрацией? Ищете выход из проблемы на уроке или с учеником?
Не знаете, как что-то сделать на компьютере?


Вы можете задать анонимный вопрос
х
Подробно изложите суть вашего вопроса.
Обратите внимание, что вопросы публикуются в открытом доступе не сайте, поэтому не указывайте персональные данные ваши или иных лиц. Однако стоит указать свой РЕГИОН, т.к. законодательство в разных регионах разное.
Отправить