Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты по данной тематике Номер выпуска: | 1527 | Дата выхода: | 24.06.2012, 19:30 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 91 / 34 | Вопросов / ответов: | 1 / 1 | Консультация # 186404: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 1. Записать в двоичном и шестнадцатеричном виде представление в памяти ПК следующих чисел (следует учитывать, что числа размером в слово хранятся в «перевернутом» виде), приведенных ниже Консультация # 186404: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 1. Записать в двоичном и шестнадцатеричном виде представление в памяти ПК следующих чисел (следует учитывать, что числа размером в слово хранятся в «перевернутом» виде), приведенных ниже
Числа для представления в памяти ПК:
Числа-байты: 21, -6, 188 Числа-слова 21, -6, 288
Задание 4. Изучить особенности сложения и вычитания целых чисел в ПК (беззнаковых и со знаком). Разобраться, для чего служат флаги переноса (CF) и переполнения мантиссы (OF). Изучить команды сложения и вычитания, допустимые типы операндов, устанавливаемые флаги. Написать фрагмент программы на ассемблере (описание переменных и команды вычислений) в соответствии с указанным вариантом из табл. 5. Подобрать числовые значения таким образом, чтобы команды устанавливали различные флаги условий (OF,CF,ZF,SF); в каждом варианте – по крайней мере 3 различных флага. В комментариях к командам указать получаемые значения флагов. В заданиях «массив байт» означает массив целых типа байт, а «массив слов» – массив целых типа слово.
Таблица 5: А – массив из 4 байт. Выполнить сложение двух крайних и двух средних. Найти разность полученных промежуточных сумм. Результат поместить в BH. Дата отправки: 21.06.2012, 18:52 Вопрос задал: Flawless (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Лысков Игорь Витальевич (Старший модератор): Здравствуйте, Flawless! 1) Числа-байты: 21, -6,188 Числа-слова 21, -6, 288
Числа-байты: 21 = 00010101b = 15h -6 = 11111010b = 0fah 188 = 10111100b = 0bch Обратите внимание, что число 188 можно рассматривать только, как беззнаковое число
Числа-слова: 21 = 00010101 00000000b = 1500h -6 = 11111010 11111111b = 0faffh 288 = 00100000 00000001b = 2001h Байты в двоичной записи, для наглядности, отделил пробелом
4)
Код : ;Краткая справка по необходимым флагам ;OF — флаг переполнения. Этот флаг устанавливается в 1, если результат предыдущей ; арифметической операции над числами со знаком выходит за допустимые для них пределы. ; Например, если при сложении двух положительных чисел получается число со старшим битом, ; равным единице (то есть отрицательное) и наоборот. ;CF — флаг переноса. Устанавливается в 1, если результат предыдущей операции ; не уместился в приемнике и произошел перенос из старшего бита или если ; требуется заем (при вычитании), иначе устанавливается в 0. ; Например, после сложения слова 0FFFFh и 1, если регистр, в который надо ; поместить результат, — слово, в него будет записано 0000h и флаг CF = 1. ;ZF — флаг нуля. Устанавливается в 1, если результат предыдущей команды — ноль. ;SF — флаг знака. Этот флаг всегда равен старшему биту результата. ;А – массив из 4 байт. Выполнить сложение двух крайних и двух средних. ;Найти разность полученных промежуточных сумм. Результат поместить в BH S SEGMENT STACK DW 64 DUP(?) S ENDS D SEGMENT ; сегмент данных ; ДИРЕКТИВЫ ОПИСАНИЯ ДАННЫХ A DB 0ffh,07fh,7fh,0ffh D ENDS C SEGMENT ASSUME SS:S,CS:C,DS:D Start PROC FAR ; Выполнение соглашений DOS и настройка регистра DS PUSH DS SUB AX,AX PUSH AX MOV AX,D MOV DS,AX MOV BH,A ; BH = 0ffh ADD BH,A+3 ; BH = 0ffh+0ffh = 0feh с переносом ; O=0, S=1, Z=0, C=1 MOV AL,A+1 ; AL = 7fh ADD AL,A+2 ; AL = 7fh + 7fh = 0feh ; O=1, S=1, Z=0, C=0 SUB BH,AL ; BH = 0feh - 0feh = 0 ; O=0, S=0, Z=1, C=0 ; Возврат в DOS RET Start ENDP C ENDS END Start  | Консультировал: Лысков Игорь Витальевич (Старший модератор) Дата отправки: 21.06.2012, 19:14 5 нет комментария ----- Дата оценки: 21.06.2012, 20:01 | Рейтинг ответа: 0 |
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка | восстановить логин/пароль Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС! |
Комментариев нет:
Отправить комментарий