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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2015, 13:48   #1
kolian87
Пользователь
 
Регистрация: 25.01.2015
Сообщений: 12
По умолчанию Определить, сколько места занимает программа в памяти

как определить, сколько места занимает программа в памяти (без учета сегмента стека).
MOV AX,x5
MOV BX,y5
MOV CX,z5
ADD AL,BL
SUB AH,BH
XOR CX,0FFFFh
kolian87 вне форума Ответить с цитированием
Старый 25.01.2015, 20:18   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
сколько места занимает программа в памяти (без учета сегмента стека).
а сегмент данных тоже не учитывается?
Только данный код?

тогда 18 байт.
вот листинг:
Код:
      1	0000  A1 0000r		      MOV AX,x5
      2	0003  8B 1E 0002r	      MOV BX,y5
      3	0007  8B 0E 0004r	      MOV CX,z5
      4	000B  02 C3		      ADD AL,BL
      5	000D  2A E7		      SUB AH,BH
      6	000F  83 F1 FF		      XOR CX,0FFFFh
             0012
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.01.2015, 21:09   #3
kolian87
Пользователь
 
Регистрация: 25.01.2015
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а сегмент данных тоже не учитывается?
Только данный код?

тогда 18 байт.
вот листинг:
Код:
      1	0000  A1 0000r		      MOV AX,x5
      2	0003  8B 1E 0002r	      MOV BX,y5
      3	0007  8B 0E 0004r	      MOV CX,z5
      4	000B  02 C3		      ADD AL,BL
      5	000D  2A E7		      SUB AH,BH
      6	000F  83 F1 FF		      XOR CX,0FFFFh
             0012
а если учитывать сегмент данных?

Цитата:
Сообщение от kolian87 Посмотреть сообщение
а если учитывать сегмент данных?
как вы посчитали напишите сколько будет хотя вот для этой строчки

Цитата:
Сообщение от kolian87 Посмотреть сообщение
как вы посчитали напишите сколько будет хотя вот для этой строчки
а всё понял количество слов машинного кода
спасибо!!!
Код:
data segment
  x5 dw 123
  y5 dw 321
  z5 dw 213
  
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

MOV AX,x5
MOV BX,y5
MOV CX,z5
ADD AL,BL
SUB AH,BH
XOR CX,0FFFFh

    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ;
а если программа полностью но без учёта сегмента стека

Последний раз редактировалось Stilet; 25.01.2015 в 21:32.
kolian87 вне форума Ответить с цитированием
Старый 25.01.2015, 21:33   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Запусти программу. Открой диспетчер задач и все увидишь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.01.2015, 21:46   #5
kolian87
Пользователь
 
Регистрация: 25.01.2015
Сообщений: 12
По умолчанию

Как составьть схему размещения в памяти программы (адреса префикса программного сегмента, сегмента данных, дополнительного сегмента данных, сегмента кода и стека).
Указание: Сегмент данных размещается сразу за префиксом программного сегмента.
что такое адреса префикса программного сегмента!!!
эт немогу понять что
kolian87 вне форума Ответить с цитированием
Старый 25.01.2015, 21:58   #6
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
тогда 18 байт.
Это смотря как считать. Если нужно учесть расход выделяемой памяти со стороны ОС, считать нужно в параграфах, и размер получается 32 байта (2 параграфа), поскольку 18 байт в один параграф не влезают.
Vapaamies вне форума Ответить с цитированием
Старый 25.01.2015, 22:06   #7
kolian87
Пользователь
 
Регистрация: 25.01.2015
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Это смотря как считать. Если нужно учесть расход выделяемой памяти со стороны ОС, считать нужно в параграфах, и размер получается 32 байта (2 параграфа), поскольку 18 байт в один параграф не влезают.
Спасбо огромное за помощь вы случайно не знаете что такое адреса префикса программного сегмента и как его на схеме изобразить

ris6_1.jpg
вот что то вроде этой схемы

только нужно здесь ещё указать адреса префикса программного сегмента,
дополнительный сегмент данных(он тут вроде есть
; set segment registers:
Код:
    mov ax, data
    mov ds, ax
    mov es, ax)
вот код всей программы
Код:
; multi-segment executable file template.

data segment
  x5 dw 123
  y5 dw 321
  z5 dw 213
  
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

MOV AX,x5
MOV BX,y5
MOV CX,z5
ADD AL,BL
SUB AH,BH
XOR CX,0FFFFh

    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends
end start ; set entry point and stop the assembler.

Последний раз редактировалось Stilet; 26.01.2015 в 07:44.
kolian87 вне форума Ответить с цитированием
Старый 26.01.2015, 07:47   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ох уж эти преподаватели... преподурят головы школьникам, а потом сами же удивляются "четупыевсеуних"...
Цитата:
что такое адреса префикса программного сегмента
https://ru.wikipedia.org/wiki/Program_Segment_Prefix
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить сколько цифр требуется для записи числа n! нужна программа для с++ vikyxa Помощь студентам 4 24.09.2013 17:00
Определить сколько знаков в числе, вычислить сумму цифр и определить старшую цифру Blombox Помощь студентам 5 25.04.2011 15:52
память, которую занимает программа Juffin Общие вопросы Delphi 2 28.10.2010 08:01
Как определить сколько памяти у видеокарты flug Общие вопросы Delphi 12 13.07.2010 08:13
Количество оперативной памяти которое занимает программа werser Помощь студентам 1 03.02.2008 02:22