Консультация № 186380
17.06.2012, 23:38
87.12 руб.
0 3 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере.
Задание 1. Записать в двоичном и шестнадцатеричном виде представление в памяти ПК следующих чисел (следует учитывать, что числа размером в слово хранятся в «перевернутом» виде), приведенных ниже

Числа для представления в памяти ПК:

Числа-байты: 42, -42, 111
Числа-слова 42, -42, 511

Задание 3. Написать директивы описания данных и команды пересылок согласно указанному варианту из табл. 4. Если в задании не указано, как инициализировать данные, то предполагается, что инициализировать не надо. Под большим числом понимается число, для представления которого одного слова недостаточно. Следует, что размер операндов в команде пересылки должен совпадать – при необходимости использовать оператором указания типа PTR. При написании программного кода можно воспользоваться файлом с примером программы data_mov.asm
Таблица 4:


Приложение:
data_mov.asm:
https://rfpro.ru/upload/8348

Обсуждение

давно
Посетитель
7438
7205
17.06.2012, 23:49
общий
это ответ
Здравствуйте, Flawless!
Задание 1:
Числа-байты:
42 = 00101010b = 2ah
-42 = 11010110b = 0d6h
111 = 01101111b = 6fh

Числа-слова:
42 = 00101010 00000000b = 2a00h
-42 = 11100011 11111111b = 0d6ffh
511 = 11111111 00000001b = 0ff01h

Байты в двоичной записи, для наглядности, отделил пробелом

Задание 3:
[code h=200]; Описание данных и пересылки
S SEGMENT STACK
DW 64 DUP(?)
S ENDS
Data SEGMENT ; сегмент данных
; ДИРЕКТИВЫ ОПИСАНИЯ ДАННЫХ
F DB 4 dup (?) ; 4 байта неициированных данных
H DD 12345678h
K DW 5 dup (4477h) ; 4 инициализированных слов
L DB ' ,.;:?!' ; 7 знаков препинания
Data ENDS
Code SEGMENT
ASSUME SS:S,CS:Code,DS:Data
Start PROC FAR
; Выполнение соглашений DOS и настройка регистра DS
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,Data ; инициируем сегментный регистр
MOV DS,AX
;a)
MOV SI, WORD PTR H+2 ;старшее слово идет вторым
MOV DI, WORD PTR H ;младшее слово идет первым
;б)
MOV CH, BYTE PTR K+2 ;третий байт в массиве К по смещению 2
;в)
MOV AX, 54F8h
;г)
MOV WORD PTR H, BP ;конец H - младшее слово - лежит первым!
MOV K+8, SI ;конец K - последнее слово находится по смещению 8 от начала
; Возврат в DOS
RET

Start ENDP
Code ENDS
END Start[/code]
5
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
17.06.2012, 23:51
общий
18.06.2012, 01:11
Остальное добавлю по мере написания
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
18.06.2012, 01:12
общий
Добавил...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа