Questions tagged [ассемблер]

Используйте эту метку для вопросов, относящихся к языку ассемблера. Также не забывайте указывать модель процессора, операционную систему и используемый транслятор.

Ассемблером называют транслятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.

Язык ассемблера — машинно-ориентированный язык низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком.

1331 questions
14
votes
6 answers

Цикл на ассемблере

Пусть A и B – два 8-разрядных регистра в обыкновенном 16-разрядном процессоре. Следующая процедура выполняет сдвиг регистра A на число разрядов, заданное в регистре B. Loop: SHR A ;shift right A DEC B ;decrement B JNZ Loop ;loop…
Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507
11
votes
3 answers

Явные отличия CMP от TEST

Я начал изучать устройство одной программы недавно, целиком написанной на ассемблере (т.е никакие трансляторы в машинный не применялись, как в языках высокого уровня). Так вот, в ней я очень часто встречаю конструкции вида TEST AL, AL ; TEST EAX,…
Salivan
  • 2,539
7
votes
1 answer

Загрузчик ОС на Ассемблере

Здравствуйте, нужно написать загрузчик. Не прошу вас писать за меня, просто объясните мне его принцип работы. Например, как он загружается в память, мне до сих пор не до конца понятно.
7
votes
2 answers

Зачем нужен регистр ebp

Для чего нужен регистр ebp, если есть esp?
bee
  • 73
5
votes
0 answers

Как правильно получить элемент из многомерного массива

У меня есть два сегмента данных Data 1 A1 dw 2 dup (6 dup (7 dup (5 dup (?)))) Data1 ends Data2 segment A2 dd 2 dup (6 dup (7 dup (5 dup (?)))) Data2 ends Мне нужно переместить элемент с массива А2[0,1,2,3] во все елементы масива А1 Code1…
5
votes
1 answer

Ассемблер: перехват NumLock

Здраствуйте! Мне нужно при нажатии NumLock в консоли выводить "1". Но проблема в том, что когда я читаю символы с помощью int 16h: mov ah,10h int 16h Программа ждет нажатия клавиши, а когда я нажимаю Numlock, то прога продолжает ожидать нажатия…
maxteam
  • 81
  • 1
  • 4
4
votes
3 answers

Как написать ассемблер?

Т.е. транслятор который переводит программу с языка ассемблера в машинные команды. Может книге какие есть?
Mencey
  • 442
  • 1
  • 6
  • 20
4
votes
1 answer

Зачем при оптимизации копировать, инкрементировать, и копировать обратно?

Код ассемблера ниже, если включена оптимизация Maximize Speed: ; 30 : i = i + 1; mov eax, DWORD PTR tv329[ebp] mov ecx, DWORD PTR tv328[ebp] inc ebx inc eax add ecx, 4 mov DWORD PTR tv329[ebp], eax mov DWORD PTR tv328[ebp], ecx А…
Gikas
  • 466
4
votes
4 answers

Что эффективней: inc eax или add eax,1?

Начал изучать ассемблер, знаю C/C++. Поэтому решил отталкиваться от знаний, которые уже есть, и начал дизассемблировать мною написанный код и смотреть как что устроено. И сразу же наткнулся на нелогичный момент. Если в ассемблере есть функция…
BogolyubskiyAlexey
  • 2,688
  • 18
  • 32
4
votes
1 answer

Можно-ли кодируя программу в 32-бита использовать 64-битные регистры? И если да то как это происходит. Если что то FASM

Прописываю к примеру use32 ,а использую регистры R(64-битные).Что будет?Если что то FASM.
anarceb
  • 43
  • 3
4
votes
2 answers

Как получить сведения о процессоре?

Здравствуйте! Как можно с помощью ассемблерных вставок получить сведения о процессоре? Дополнено. Вот нашел команду cpuid и код: mov ЕАХ,О cpuid ;EAX=0001h mov mem, ЕВХ mov mem+4, EDX mov mem+8, ECX ;mem='Genuinelntel' cpuid EAX=543h (например) ,EDX…
KoCaTKo
  • 875
3
votes
1 answer

Насколько умны/глупы компиляторы

Как реализовать задание: Доказать насколько умны компиляторы путем написания простых блоков оператор, написать ассемблерную версию компилятора Или где можно прочитать о способе реализации? 1) A = 2+3 2) if |A>B| op1 else op2 3)…
3
votes
1 answer

Ошибка сегментации в ассемблере NASM. Архитектура процессора amd64, синтаксис intel (OS - linux)

SECTION .data msg db "Hello, world!",0xa len equ $ - msg SECTION .text global _start _start: mov eax, 4 mov ebx, 1 mov ecx, msg mov edx, len int 0x80 mov…
3
votes
2 answers

Пытаюсь выучит ассемблер. Кое-что не особо понятно

Взял пример из книги (Олега Калашникова "Ассемблер это просто"), который записывает символ в видео буфер DOS по адресу B800h и смещению 0 (Код должен выводить ASCII символ смайлика в углу текстового экрана). Сассемблировал код в FASM. (Естественно…
3
votes
0 answers

Изучение ассемблера не зная высокоуровневых языков

Можно ли изучать ассемблер не зная высокоуровневые языки?
new
  • 157
1
2 3
21 22