С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler: Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274

адресное пространство

26.03.2019, 01:01. Показов 4305. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
уважаемые форумчане. книги я читаю. вас бы без повода не беспокоил. но что-то до меня не доходит. помогите пожалуйста разобраться.
Митницкий В. Я. Архитектура IBM PC и язык Ассемблера. книга -огонь. но немного не дорос до нее я.
из книги: мы занумеруем все ячейки в памяти с нуля... это будут физические адреса. также может разбить память на последовательные участки по 16 байт, что назовем параграфы. первый параграф будет простираться от 0h до 1fh. второй от 10h до 1fh.... важно заметить-говорят они, что физический адрес первого байта, а мы помним что физический адрес это пронумерованные ячейки, а ячейка это один байт. значит это пронумерованные байты от нуля до.... и так важно заметить-говорят они, что физический адрес первого байта оканчивается на 16тиричную цифру, то есть кратен 16. как так? допустим самая первая ячейка в памяти, ее адрес 1. адрес этой первой ячейки в памяти будет также адресом первой ячейки и в параграфе, то есть 1. но один не кратен 16.
нужна помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2019, 01:01
Ответы с готовыми решениями:

Пустое адресное пространство
Обьясните пожалуйста откуда берётся пустое адресное пространство между дата и код сегментами ???

Адресное пространство
Ситуация такая: Заинтересовался темой создания читов для онлайн игрушек, не ради корысти, но ради интереса :). Возник вопрос: Как...

Адресное пространство
Адрес в сипп является 4байтным числом. Возможно ли модифицировать адрес так, что бы залезть в другие процессы? Или для каждого процесса...

8
4189 / 1837 / 220
Регистрация: 06.10.2010
Сообщений: 4,124
26.03.2019, 12:13
Лучший ответ Сообщение было отмечено pcmax как решение

Решение

Программисты считают от нуля.
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
26.03.2019, 19:05  [ТС]
спасибо огромное.....
подскажите еще пожалуйста. пытаюсь умножить одно число на другое, но ничего не получается
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
section .text
global _start
_start:
mov al, 3
mov bl, 2
mul bl
int 0x80
push al
mov eax, 4
mov ebx, 1
pop ecx
mov edx, 1
int 0x80
mov eax, 1
int 0x80
0
4189 / 1837 / 220
Регистрация: 06.10.2010
Сообщений: 4,124
27.03.2019, 04:32
Для чего первый int 0x80?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
27.03.2019, 05:34
Лучший ответ Сообщение было отмечено pcmax как решение

Решение

pcmax,
почему push AL, а pop ECX ?
1
4189 / 1837 / 220
Регистрация: 06.10.2010
Сообщений: 4,124
27.03.2019, 07:30
Лучший ответ Сообщение было отмечено pcmax как решение

Решение

Для вызова функций linux лучше использовать макросы и константы - так будет читабельнее. Вот например для FASM
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
stdin  = 0
stdout = 1
stderr = 2
 
sys_exit =1
sys_write=4
 
macro invoke func,[args]
{
  common
  counter=0
  forward
  counter=counter+1
  if ~args eq
    if counter=1
        mov ebx,args
    else if counter=2
        mov ecx,args
    else if counter=3
        mov edx,args
    else if counter=4
        mov esi,args
    else if counter=5
        mov edi,args
    end if
  end if
  common
  mov eax,func
  int 80h
}
Пример использования
Assembler
1
2
invoke sys_write,stdout,buf,4
invoke sys_exit
Для вывода числа на экран можно использовать printf - https://habr.com/ru/sandbox/26864/.
2
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
27.03.2019, 21:41  [ТС]
да, еле дошло... результат будет всегда больше. значит если были регистры al и bl допустим, то результат будет в ax.


с умножение вроде понял. но подскажите пожалуйста, почему когда я пытаюсь расширить регистра bx, до ebx вот таким путем 0bx, то не получаю нужного мне результата. ну вот простой небольшой пример:

Assembler
1
2
3
mov bx, 3
 
mov eax, 0bx
в eax я не смогу поместить 3. она занулится? или останется в bx? то есть она будет лежать в bx ,но в старшем разряде в eax, будет 0? потому что 0bx , то есть я туда его поместил. правильно?
0
4189 / 1837 / 220
Регистрация: 06.10.2010
Сообщений: 4,124
28.03.2019, 03:37
Assembler
1
movzx eax,bx
1
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
28.03.2019, 05:48
Цитата Сообщение от pcmax Посмотреть сообщение
я пытаюсь расширить регистра bx
Assembler
1
2
xor ebx,ebx
mov bl, 3; ebx=3
  1. если требуется простое расширение, то можно использовать MOVZX
  2. если требуется расширение со знаком, то MOVSX
смотри Электронный учебник https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Глава 10. АРИФМЕТИЧЕСКИЕ КОМАНДЫ https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Изменение размера числа
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2019, 05:48
Помогаю со студенческими работами здесь

Проецирование на адресное пространство
Доброго времени суток. Нужна помощь в решении примера: Cоздать консольное приложение. Приложение создает общую область памяти с...

Адресное пространство процесса
Решил почитать про winapi, в результате пока полная путаница. Вот если создал функцию в своей программе, то ее адрес не могу передать в...

Чужое адресное пространство
Как получить доступ к чужому адресному пространству? Допустим, как это делают cheatEngine или ArtMoney? Они вроде как не ставятся на уровне...

Адресное пространство процесса
здравствуйте! подскажите как узнать (какие апифункции использовать) адресное пространство системного процесс (какую область памяти он...

Адресное пространство Windows
Если вдруг не там спросил, заранее прошу прощения. Я просто не нашёл куда ещё этот вопрос можно задать. А суть вот в чём: Адресное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru