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

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

Числа-байты: 17, -7, 221
Числа-слова 17, -7, 321

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


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

Обсуждение

давно
Посетитель
7438
7205
19.06.2012, 01:49
общий
это ответ
Здравствуйте, Flawless!
1)
Числа-байты: 17, -7, 221
Числа-слова 17, -7, 321

Числа-слова:
17 = 00010001b = 11h
-7 = 11111001b = 0f9h
221 = 11011101b = 0ddh
Обратите внимание, что число 221 можно рассматривать только, как беззнаковое число

Числа-слова:
17 = 00010001 00000000b = 1100h
-7 = 11111001 11111111b = 0f9ffh
321 = 01000001 00000001b = 4101h
Байты в двоичной записи, для наглядности, отделил пробелом

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

Start ENDP
C ENDS
END Start[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа