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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2012, 16:50   #1
Димас5552
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 44
По умолчанию Тупые вопросы новичка

Имеется код, который просто выводит на экран классическое "Привет мир":

PHP код:
CSEG segment
org 100h

Begin
:

    
mov ah,9
    mov dx
,offset Message
    int 21h

    int 20h

Message db 
'Hello, world!$'

CSEG ends
end Begin 
Вопрос у меня связан с оператором Begin: - почему вместо Begin может быть любое другое слово? Или компиллятор просто считает начало кода то место где стоит двоеточие?
Димас5552 вне форума Ответить с цитированием
Старый 24.10.2012, 17:02   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

На каком асме вы писали, что в нем меток нету ? О_О
Код:
end Begin
эта строка говорит компилятору, что нужно начинать с метки Begin
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 24.10.2012, 17:04   #3
Димас5552
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 44
По умолчанию

Я писал на той асме где может быть только слово Begin и никакое более!

Цитата:
эта строка говорит компилятору, что нужно начинать с метки Begin
Спасибо, теперь стало ясно

Последний раз редактировалось Димас5552; 24.10.2012 в 17:07.
Димас5552 вне форума Ответить с цитированием
Старый 24.10.2012, 17:10   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Как можно писать программу даже без переходов и прочего ?
Скажите что за контроллер такой - я полюбопытствую )
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 24.10.2012, 17:17   #5
Димас5552
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 44
По умолчанию

Это среда написания прошивок называется MPLAB, разработчик - Microchip. Там в принципе сильно сложные алгоритмы то и не нужны - 2+2 хватает позаглаза

Ещё у меня вопрос по регистрам - их ведь у процессора ограниченное количество... Вот начинаем мы выполнять программу, заносим в регистр нужное значение но ведь получается что какая ни буду другая программа, выполняемая параллельно может этот регистр под себя изменить... Почему этого не происходит?
Димас5552 вне форума Ответить с цитированием
Старый 24.10.2012, 17:26   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,357
По умолчанию

Цитата:
Сообщение от Димас5552 Посмотреть сообщение
заносим в регистр нужное значение но ведь получается что какая ни буду другая программа, выполняемая параллельно может этот регистр под себя изменить... Почему этого не происходит?
Потому что процессор паралельно не работает - параллелизм делает другая програма, которая заботися о сохранении регистров.
waleri вне форума Ответить с цитированием
Старый 24.10.2012, 17:33   #7
Димас5552
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 44
По умолчанию

И как эта программа называется? Но ведь если она постоянно заботится о том что бы регистры не путались выходит она сама постоянно работает и пользуется регистрами а значит процессор больше ничего не может выполнить кроме этой одной программы...

Последний раз редактировалось Димас5552; 24.10.2012 в 17:42.
Димас5552 вне форума Ответить с цитированием
Старый 25.10.2012, 03:57   #8
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Димас5552
эта программа называется "многозадачная операционная система" в твоем случае Виндовз, именно она распределяет память так чтобы каждая задача считала, что она единственная и ОС занимается сохранением содержания регистров при переключении между заданиями, а процессор выполняет, то что ему подсовывает ОС
Mikl___ вне форума Ответить с цитированием
Старый 28.10.2012, 19:44   #9
Димас5552
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 44
По умолчанию

Читал книжку калашникова и там говорится что прога грузится в первый же свободный сигмент оперативки. Этому сигменту присваивается имя командой sigment, например "CSIG sigment". Я так понимаю в одном сигменте оперативки находится 64 кб, так как максимальный размер проги в com именно столько...?

И что значит команда CSEG ends? Конец сигмента, но зачем? Ведь если в этот сигмент загрузилось например 10 кб кода и в конце идет это команда она же никак не может "обрезать" физическое пространство сигмента до 10 кб...?
Димас5552 вне форума Ответить с цитированием
Старый 28.10.2012, 20:30   #10
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Во-первых есть еще exe программы, а в них может быть и почти всегда более одного сегмента. Как отличить конец одного и начало другого ?
Во-вторых понятнее использовать упрощенные дерективы сегментации.
В вашем случае, это
Код:
.model tiny ; код и данные в одном сегменте, т.е. com программа
.code
org 100h 

Begin: 

    mov ah,9 
    mov dx,offset Message 
    int 21h 

    int 20h 
.data
Message db 'Hello, world!$' 

end Begin
Описывать все я не буду, ибо все есть в соответствующих учебниках, но как мне кажется и по наитию понятно..
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему на этом форуме все игнорируют тупые вопросы? IRobot Свободное общение 45 02.07.2011 13:43
Вопросы от новичка AngelOfFate Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 03.06.2011 15:25
Вопросы от новичка valenina Общие вопросы Delphi 10 31.05.2010 09:35
Вопросы новичка(C++) NetGod Общие вопросы C/C++ 22 17.04.2009 22:49