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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2011, 22:12   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

начнем сначала, нет смысла использовать машинные коды ибо есть например FASM.
далее, относительный адрес вам не сильно нужен, ибо известно куда вас грузят.(да и сегментацию никто не отменял)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.08.2011, 12:33   #12
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Debris
несколько замечаний
Код:
mov ax,cs
mov ds,ax
cld
mov si,7D00h
@@: lodsb
 cmp al,0
 jz @f
 mov bx,7
 mov ah,0Eh
 int 10h
 jmp @b
@@: hlt
cld при входе программы можно не использовать так как первоначально DF=0, в каждой итерации цикла устанавливать bx=7 и ah=0Eh не стоит, так как int 10h содержимое AH и BX не меняет, поэтому
Код:
mov ax,cs
mov ds,ax
mov si,7D00h
mov bx,7
 mov ah,0Eh
@@: lodsb
 and al,al
 jz @f
 int 10h
 jmp @b
@@: hlt
для второго кода
Код:
call $+3
pop ax
add ax,15h
mov si,ax
почему не написать проще?
Код:
call $+3
pop si
add si,15h
Mikl___ вне форума Ответить с цитированием
Старый 16.08.2011, 20:17   #13
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию

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

pop si, незнал что так можно...., так как к нему нелзя обращатся к старшим и младшим байтам, SI для меня какой-то стрёмный.
ну работает же)

Ну а повторную загрузку bx=7 ah=0Eh, признаюсь бессовесно спёр с кода в MBR который ставит windows7, мне пока что int10 не по зубам, хотелось бы вобще отказатся от него, но через порты с видеокартой какнибудь в будущем, кстати один из перых вопросов при изменении режима типа с 800*600 на 1124*786, на фиксированом адресе на памяти адреса точек тоже будут ведь менятся, почему об этом нигде не написано, или допустим если режим труколор он в выделеную область же не влезит..... ну и всё в этой же поре...

"начнем сначала, нет смысла использовать машинные коды ибо есть например FASM." - Даже немного оскорбило, также можно сказать если есть Windows зачем программировать

Последний раз редактировалось Stilet; 16.08.2011 в 20:54.
Debris вне форума Ответить с цитированием
Старый 17.08.2011, 13:47   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
но через порты с видеокартой какнибудь в будущем
лучше не стоит.
Цитата:
почему об этом нигде не написано
помоему итак понятно.
Цитата:
он в выделеную область же не влезит
примените VESA 2.0 +.
Цитата:
также можно сказать если есть Windows зачем программировать
логики тут вообще нет.(тем более как аналогия к моей фразе)

я писал загрузчики на FASM, и нормально все.
просто не терял время на мазохизм.

насчет компилятора, то тут немного полезно, но отнюдь не всегда, ибо компилировать из С++ сразу в машинные коды накладно(оптимизацию потом уже трудно провести)
обычно минимально идет C++->asm->bin(на первых двух этапах провести оптимизацию не так трудно)
Цитата:
чтоб он работал на голом железе
ну это нужно как минимум миниОС.
которая и будет управлять потоками доступом к диску и тд.
занимался я этим, но пока решил это дело отложить, ибо проект стоит сначало отработать в контролируемой среде, прежде чем пускать его в собственное плавание(нулевое кольцо).
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.08.2011, 20:48   #15
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию

Немного не в тему, но нехочу начинать новую тему, разбираю MBR и заинтересовал такой вопрос если я сделаю 5 загрузочный раздел, то есть разобью на 5 частей вручную диск установлю на 1 раздел какуюнибудь ось а параметры раздела забью на 16 еденц раньше таблици ну и напишу свою программу в мбр опрашивающую разделы, второй раздел будет находится на стандартном месте первого... сможет пройти такой вариант конечно любой загрузчик сотрёт мой раздел но если я буду ставить оси только в свои созданые разделы я невижу вроде никаких препятствий подкажите?
Debris вне форума Ответить с цитированием
Старый 18.08.2011, 06:17   #16
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Цитата:
Сообщение от Debris
Насчёт применения комрилятора, скажу что он только усложняет понимание как работает компьютер и если я в конце концов хочу написать свой компилятор и желательно интерпретируемый под асм, и чтоб он работал на голом железе мне ничего кроме редактора и не нужно.
Debris, а ты не из Челябинска? А то, ходят слухи, что челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью — они вручную магнетизируют участки жесткого диска.

Последний раз редактировалось Mikl___; 18.08.2011 в 09:29.
Mikl___ вне форума Ответить с цитированием
Старый 07.01.2015, 19:07   #17
program2001
Пользователь
 
Аватар для program2001
 
Регистрация: 20.02.2011
Сообщений: 68
По умолчанию

А можно, плз, перезалить, а то ссылка не рабочая (сообщение #10). =(
Цитата:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Linus Torvalds
program2001 вне форума Ответить с цитированием
Старый 07.01.2015, 21:13   #18
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от program2001 Посмотреть сообщение
А можно, плз, перезалить, а то ссылка не рабочая (сообщение #10). =(
Ну так вы спросите еще через 5 лет, а то рано как-то, всего 4 года прошло...
waleri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Относительное позиционирование melkortheshadow HTML и CSS 6 13.04.2011 23:10
Относительное позиционирование Vinnipux HTML и CSS 1 25.02.2011 07:49
Как прописать относительное выделение строк? Ogeris Microsoft Office Excel 4 27.10.2010 11:31
Смещение компонента Volt Общие вопросы Delphi 9 20.01.2010 00:36
Смещение в WinHex bmw Софт 4 22.03.2009 02:16