2013-11-20 3 views
2

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

Given the following information for an assembly language program: 

Process code size = 3126 bytes, Page size = 1042 bytes 

Instruction at memory location 532: Load 1, 2098 

Instruction at memory location 1156: Add 1, 4087 

Instruction at memory location 2086: Sub 1, 1052 

Data at memory location 1052: 015672 

Data at memory location 2098: 114321 

Data at memory location 4087: 077435 

(a) How many pages are needed to store the entire process code? 
Show calculations. 

(b) Compute the page number and displacement for each of the byte 
e byte 
addresses where the data is stored (recall that page numbering 
starts at 0). 

(c) Are page numbers and displacements legal for this process? 
Explain. 

ответ

3

- Учитывая то Process code size = 3126 bytes, Page size = 1042 bytes
Количество страниц = process code size/page size
Количество страниц = 3

В - = тысяча пятьдесят-два Страница 1 (или вторая страница), смещение = 10 1052 = 1042 + 10
2098 = Страница 2 (или третья страница), смещение = 14 2098 = (1042 * 2) + 14
4087 = Страница 3 (или четвертая страница), смещение = 961 4087 = (1042 * 3) + 961

С - маловероятно. 4087, по-видимому, намного превышает размер процесса (например, на 961 байт). Но это зависит от вашей платформы.

+0

спасибо! – Dominic

+0

@ Dominic Если это отвечает на ваш вопрос, вы должны [принять его] (http://meta.stackexchange.com/a/5235/243725). –

Смежные вопросы