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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2018, 22:07   #1
Икар К
Пользователь
 
Регистрация: 05.11.2018
Сообщений: 20
По умолчанию Сколько памяти будет зарезервировано след оператором ассемблера?

text DB 20h, 20h, 'люди !'
Икар К вне форума Ответить с цитированием
Старый 06.11.2018, 05:16   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

db - это "Define Byte", т.е. определить ячейки размером байт.
вот и считай: 1+1+6 = x
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 06.11.2018, 16:28   #3
Икар К
Пользователь
 
Регистрация: 05.11.2018
Сообщений: 20
По умолчанию

2R71MT Спасибо!
Будет примерно семь, я правильно понял?
Икар К вне форума Ответить с цитированием
Старый 06.11.2018, 16:33   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Икар К Посмотреть сообщение
Будет примерно семь, я правильно понял?
Это юмор такой?!
Во-первых, почему "примерно"? у Вас калькулятор выдаёт примерные значения, или Вы не уверены, что смогли правильно сложить три однозначных числа?!

во-вторых, почему "семь"? расскажите, как Вы подсчитали
выражение
Код:
 1+1+6
так, что у Вас получилось семь?!! o_O
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.11.2018, 16:51   #5
Икар К
Пользователь
 
Регистрация: 05.11.2018
Сообщений: 20
По умолчанию

Понимаю, что восемь, хотя в одном форуме меня убеждают что семь. Вот я решил выяснить истину, спросив здесь. :-)
Икар К вне форума Ответить с цитированием
Старый 06.11.2018, 17:41   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Икар К Посмотреть сообщение
Понимаю, что восемь,
хорошее понимание. жаль, что я не увидел его в вашем предыдущем посте #3


Цитата:
Сообщение от Икар К Посмотреть сообщение
хотя в одном форуме меня убеждают что семь.
так может быть, Вы на другом форуме задали ДРУГОЙ вопрос?
и чем же они мотивируют, что семь?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.11.2018, 18:17   #7
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и чем же они мотивируют, что семь?
Один в уме.
jillitil вне форума Ответить с цитированием
Старый 06.11.2018, 18:22   #8
Икар К
Пользователь
 
Регистрация: 05.11.2018
Сообщений: 20
По умолчанию

Вот ссылка
https://otvet.mail.ru/question/211326996
Икар К вне форума Ответить с цитированием
Старый 06.11.2018, 22:20   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Икар К Посмотреть сообщение
Вот ссылка
ищите разницу между
Цитата:
Код:
Text db 20h,20h,'люди '
и
Цитата:
Код:
text DB 20h, 20h, 'люди !'

Последний раз редактировалось Serge_Bliznykov; 06.11.2018 в 22:23.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.11.2018, 06:32   #10
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

там разделителем считается запятая, после которой пробелы не учитываются,
если эти пробелы не находятся внутри кавычек, т.е. не определены как строка.
сами ячейки памяти задаются так:
Код:
   db  - define byte  - определить как 1-байт;
   dw  - define word  - определить как 2-байта;
   dd  - define dword - определить как 4-байта;
   dq  - define qword - определить как 8-байтов;
   dup - duplicate    - X-раз дублировать(y)
перед DUP нужно указать счётчик повторений, а дальше - значение, что повторять.
кстати, в скобках можно задавать целые строки, обрамив их кавычками.
например такая конструкция запишет в память указанную строку 10-раз:
Код:
abc   db   10 dup('Hello World')
а вот как это выглядит в памяти,
с её выравниванием на 16-байтную границу инструкцией 'ALIGN' (забивает оставшуюся часть нопами с опкодом 90h):
Код:
align  16
msg0   db  1,2,3,4,5       ; массив из 5-ти байт
align  16
msg1   dw  1,2,3,4,5       ; массив 10-байт
align  16
msg2   dd  1,2,3,4,5       ; массив 20-байт
align  16
msg3   db  4 dup('Hello World ')     ; массив из текстовых строк
align  32
Изображения
Тип файла: png define.png (10.3 Кб, 171 просмотров)
Нашедшего выход - затаптывают первым..

Последний раз редактировалось R71MT; 07.11.2018 в 06:35.
R71MT вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Assembler] Matrix rd H*W*4 ; выделение памяти под матрицу (строки идут друг за другом) rd - это сколько памяти выделяется? Дмитрийййй Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 10.10.2018 12:13
Сколько будет стоить: Дмитрий.2015 Фриланс 28 03.06.2015 11:25
сколько будет стоить? Алёна Фриланс 5 24.04.2009 23:49
Сколько будет стоить? Neymexa Фриланс 2 10.12.2008 01:49