Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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

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

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

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
Репутация: 618

icq: 272532204
skype: goodwin-98
По умолчанию

На каком асме вы писали, что в нем меток нету ? О_О
Код:

end Begin

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

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

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

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

icq: 272532204
skype: goodwin-98
По умолчанию

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

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

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

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

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

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

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

Читал книжку калашникова и там говорится что прога грузится в первый же свободный сигмент оперативки. Этому сигменту присваивается имя командой 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
Репутация: 618

icq: 272532204
skype: goodwin-98
По умолчанию

Во-первых есть еще 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему на этом форуме все игнорируют тупые вопросы? 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


15:52.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru