Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Низкоуровневое программирование

20K
25 февраля 2007 года
Змiй
12 / / 05.12.2006
У меня сразу 2 вопроса:
1) Существуют ли ещё низкоуровневые языки кроме ассемблеров?
2) В чём преимущество прграммирования на машинных кодах перед программированием на низкоуровневых языках?
Заранее благодарен.
9
25 февраля 2007 года
Lerkin
3.0K / / 25.03.2003
Цитата: Змiй

1) Существуют ли ещё низкоуровневые языки кроме ассемблеров?


Микрокод ;) (хотя, и не язык)

Цитата: Змiй

2) В чём преимущество прграммирования на машинных кодах перед программированием на низкоуровневых языках?


Сомнительное преимущество, хотя, может кому-то и удобнее писать:

 
Код:
[FONT="Courier New"]31 C0 8E D0 BC FE 05 8E D8 BE 1C 7C 8E C0 BF 00
06 B9 2E 00 FC F3 A5 EA 00 06 00 00 8E E0 BB 78
00 1E 64 C5 37 B1 06 BF 00 06 57 F3 A5 5F 1F ...
...[/FONT]

вместо
Код:
[FONT="Courier New"]xor     ax,ax
mov     ss,ax
mov     sp,005FEh
mov     ds,ax
mov     si,07C1Ch
mov     es,ax
mov     di,00600h
mov     cx,0002Eh
cld
repe    movsw
jmp     00000h:00600h
mov     fs,ax
mov     bx,00078
push    ds
lds     si,fs:[bx]
mov     cl,006
mov     di,00600
push    di
repe    movsw
pop     di
pop     ds[/FONT]
252
25 февраля 2007 года
koderAlex
1.4K / / 07.09.2005
зато память развивает :).
9
25 февраля 2007 года
Lerkin
3.0K / / 25.03.2003
Цитата: koderAlex
зато память развивает :).


Точно. А я где-то действительно читал про методику программирования (чтения программы) в hex-кодах. Типа, для супер-пупер хацкеров... (как бы, не в том же "Хакере").

252
25 февраля 2007 года
koderAlex
1.4K / / 07.09.2005
Мдя ... жалко что журнал спортили . (
весело было читать первые номера . ))
622
26 февраля 2007 года
nilbog
507 / / 19.12.2006
Цитата: Змiй

1) Существуют ли ещё низкоуровневые языки кроме ассемблеров?


назревает вопрос - является ли к примеру создание интегральных схем програмированием, спрашивается почему бы и нет

252
26 февраля 2007 года
koderAlex
1.4K / / 07.09.2005
ahdl ( altera.com ) , vhdl и др . ты об этом ?
334
26 февраля 2007 года
HexEdit
809 / / 27.07.2006
Цитата: koderAlex
зато память развивает :).


угу:)
вот все бы ничего, но стоит добавить что-нибудь куда-нибудь в середину, и... все адреса и смещения переделывать заново :)

20K
26 февраля 2007 года
Змiй
12 / / 05.12.2006
1) Я так понимаю, что асм - самый низкоуровневый язык. Так? Но существуют ли языки "выше" ассемблера, но всё же считающиеся низкоуровневыми? Вот что написано на сайте wikipedia:
[FONT="Book Antiqua"]Низкоуровневый язык программирования — язык программирования, близкий к программированию непосредственно в машинных кодах.

Как правило, использует особенности конкретного семейства процессоров. Общеизвестный пример низкоуровнего языка — язык ассемблера. Также к языкам низкого уровня можно причислить MSIL, применяемый в платформе Microsoft .NET.
[/FONT]
Цитата:
назревает вопрос - является ли к примеру создание интегральных схем програмированием, спрашивается почему бы и нет


Я имел ввиду программирование приложений.
2) Ну так всё-таки есть приемущество? :) Если одной комманде асма сооветствует одна команда машинного кода, то какой смысл прогрммировать на машинном коде?

334
26 февраля 2007 года
HexEdit
809 / / 27.07.2006
[quote=Змiй]2) Ну так всё-таки есть приемущество? Если одной комманде асма сооветствует одна команда машинного кода, то какой смысл прогрммировать на машинном коде?[/quote]
Преимущества как такового нет. Оно просто не нужно.
Это конечно ИМХО, но я смысла не вижу.
252
26 февраля 2007 года
koderAlex
1.4K / / 07.09.2005
на машинном коде никто давно уже не работает .
даже для новых процов делают (сначала) кросс-ассемблер , а потом кросс-компиляторы других языков (если надо) и нормальные ассемблер и яву(язык высокого уровня) .
20K
26 февраля 2007 года
Змiй
12 / / 05.12.2006
Цитата: koderAlex
на машинном коде никто давно уже не работает .


Тогда понятно

349
26 февраля 2007 года
Phantom-84
656 / / 27.10.2005
На самом деле профессиональному программисту, в особенности системщику, знание машинного кода не помешает! И я даже здесь не имею в виду тех программистов, которые сами разрабатывают ассемблерные компиляторы. Вот вам пара простых примеров, показывающих, как можно использовать подобные знания при программировании на ассемблере (не в машинных кодах): во-первых, некоторые не очень продвинутые ассемблеры не поддерживают некоторые инструкции процессора или отдельные формы инструкций (в первую очередь это относится к различным расширениям типа MMX или SSE); во-вторых, зная машинный код, очень легко оценивать размеры инструкций и выбирать оптимальный по размеру вариант, например, полезно учитывать специфику использования регистра (e)ax/al в большинстве арифметических операций с непосредственным операндом или в инструкции mov, когда один из операндов является явно заданной ячейкой памяти, или же знать, что инструкция xchg обмена между регистрами однобайтовая, если один из операндов - регистр (e)ax, но не al, или же, что однобайтовая инструкция nop - это фактически xchg (e)ax,(e)ax, а двухбайтовая не приводящая к исключению - обычно xchg (e)bx,(e)bx, или же, что инструкции inc/dec reg - однобайтовые для 16/32-разрядных регистров, но двухбайтовые для 8-разрядных регистров, или же, что адресная составляющая операнда в памяти с использованием индексного множителя или просто двух разных регистров (при 32-разрядной адресации) занимает на один байт больше - это байт SIB, это же касается адреса, в котором присутствует регистр esp (пусть даже единственный регистр), или адреса [ebp], который на самом деле транслируется в [ebp+0], что также занимает один лишний байт, ну т.д., здесь продолжать можно еще очень долго...
20K
27 февраля 2007 года
Змiй
12 / / 05.12.2006
Всем спасибо за ответы.
991
28 февраля 2007 года
Zenhipster
157 / / 14.01.2005
Цитата: Змiй
Но существуют ли языки "выше" ассемблера, но всё же считающиеся низкоуровневыми?


"C--" например. Скорее даже это язык среднего уровня абстракции данных.
http://www.cminusminus.org/

26K
18 марта 2007 года
oldx
3 / / 13.03.2007
господа, короче! я решил немного поинтересоваться ассемблером с нуля, как программированием вообще.начал с масм6.11 под дос,но что то мне не дает пакоя что под мой процессор он не подойдет , начал в учебной программе:CSEG segment
org 100h

Begin:

mov ax,0B800h

mov es,ax

mov di,0

mov al,1

mov ah,31

mov cx,2000



Next_face:

mov es:[di],ax

add di,2

loop Next_face


mov ah,10h

int 16h

int 20h

CSEG ends

end Begin
..ошибки выдавать, пеньтиум 3000мгц, избавте от мучений, подскажите с чего можно начать и литературы, хачу именно ассемблер!заранее спасибо!
252
19 марта 2007 года
koderAlex
1.4K / / 07.09.2005
http://forum.codenet.ru/showthread.php?t=31103
это читал ?
ошибки выдаёт ОСь (если может :) ) . процессор может только выполнить код , или не выполнить :) .
масм немного устарел , лучше сразу начинать с фасма .
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог