Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты по данной тематике Номер выпуска: | 1524 | Дата выхода: | 21.06.2012, 14:30 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 91 / 36 | Вопросов / ответов: | 3 / 3 | Консультация # 186380: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 1. Записать в двоичном и шестнадцатеричном виде представление в памяти ПК следующих чисел (следует учитывать, что числа размером в слово хранятся в «перевернутом» виде), приведенных нижеКонсультация # 186381: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 4. Изучить особенности сложения и вычитания целых чисел в ПК (беззнаковых и со знаком). Разобраться, для чего служат флаги переноса (CF) и переполнения мантиссы (OF). Изучить команды сложен... Консультация # 186382: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 5. Написать фрагмент программы на ассемблере (описание переменных и команды вычислений) в соответствии с указанным вариантом. Использовать операторы организации цикла и индексирование. Помен...
Консультация # 186380: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 1. Записать в двоичном и шестнадцатеричном виде представление в памяти ПК следующих чисел (следует учитывать, что числа размером в слово хранятся в «перевернутом» виде), приведенных ниже
Числа для представления в памяти ПК:
Числа-байты: 42, -42, 111 Числа-слова 42, -42, 511
Задание 3. Написать директивы описания данных и команды пересылок согласно указанному варианту из табл. 4. Если в задании не указано, как инициализировать данные, то предполагается, что инициализировать не надо. Под большим числом понимается число, для представления которого одного слова недостаточно. Следует, что размер операндов в команде пересылки должен совпадать – при необходимости использовать оператором указания типа PTR. При написании программного кода можно воспользоваться файлом с пример ом программы data_mov.asm Таблица 4:
 Дата отправки: 17.06.2012, 23:38 Вопрос задал: Flawless (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Лысков Игорь Витальевич (Старший модератор): Здравствуйте, Flawless! Задание 1: Числа-байты: 42 = 00101010b = 2ah -42 = 11010110b = 0d6h 111 = 01101111b = 6fh
Числа-слова: 42 = 00101010 00000000b = 2a00h -42 = 11100011 11111111b = 0d6ffh 511 = 11111111 00000001b = 0ff01h
Байты в двоичной записи, для наглядности, отделил пробелом
Задание 3:
Код : ; Описание данных и пересылки 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  | Консультировал: Лысков Игорь Витальевич (Старший модератор) Дата отправки: 17.06.2012, 23:49 5 нет комментария ----- Дата оценки: 18.06.2012, 08:30 | Рейтинг ответа: 0 | Консультация # 186381: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 4. Изучить особенности сложения и вычитания целых чисел в ПК (беззнаковых и со знаком). Разобраться, для чего служат флаги переноса (CF) и переполнения мантиссы (OF). Изучить команды сложения и вычитания, допустимые типы операндов, устанавливаемые флаги. Написать фрагмент программы на ассемблере (описание переменных и команды вычислений) в соответствии с указанным вариантом из табл. 5. Подобрать числовые значения таким образом, чтобы команды устанавливали различные флаги условий (OF,CF,ZF,SF); в каждом варианте – по крайней мере 3 различных флага. В комментариях к командам указать получаемые значения флагов. В заданиях «массив байт» означает массив целых типа байт, а «массив слов» – массив целых типа слово.
Таблица 5: G – массив из 4 слов. Выполнить сложение двух средних и двух кра йних. Найти разность полученных промежуточных сумм. Результат поместить в BX. Дата отправки: 17.06.2012, 23:41 Вопрос задал: Flawless (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Лысков Игорь Витальевич (Старший модератор): Здравствуйте, Flawless!
Код : ;Краткая справка по необходимым флагам ;OF — флаг переполнения. Этот флаг устанавливается в 1, если результат предыдущей ; арифметической операции над числами со знаком выходит за допустимые для них пределы. ; Например, если при сложении двух положительных чисел получается число со старшим битом, ; равным единице (то есть отрицательное) и наоборот. ;CF — флаг переноса. Устанавливается в 1, если результат предыдущей операции ; не уместился в приемнике и произошел перенос из старшего бита или если ; требуется заем (при вычитании), иначе устанавливается в 0. ; Например, после сложения слова 0FFFFh и 1, если регистр, в который надо ; поместить результат, — слово, в него будет записано 0000h и флаг CF = 1. ;ZF — флаг нуля. Устанавливается в 1, если результат предыдущей команды — ноль. ;SF — флаг знака. Этот флаг всегда равен старшему биту результата. ;G – массив из 4 слов. Выполнить сложение двух средних и двух крайних. ;Найти разность полученных промежуточных сумм. Результат поместить в BX S SEGMENT STACK DW 64 DUP(?) S ENDS D SEGMENT ; сегмент данных ; ДИРЕКТИВЫ ОПИСАНИЯ ДАННЫХ G DW 0ffffh,07fffh,7fffh,0ffffh 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 ; D - непосредственный операнд, в сегментный регистр MOV DS,AX ; напрямую не пересылается!!! MOV AX,G ; AX = 0ffffh ADD AX,G+6 ; AX = 0ffffh+0ffffh = 0fffeh с переносом ; O=0, S=1, Z=0, C=1 MOV BX,G+2 ; BX = 7fffh ADD BX,G+4 ; BX = 7fffh + 7fffh = 0fffeh ; O=1, S=1, Z=0, C=0 SUB BX,AX ; BX = 0fffeh - 0fffeh = 0 ; O=0, S=0, Z=1, C=0 ; Возврат в DOS RET Start ENDP C ENDS END Start  | Консультировал: Лысков Игорь Витальевич (Старший модератор) Дата отправки: 18.06.2012, 01:24 5 нет комментария ----- Дата оценки: 18.06.2012, 08:31 | Рейтинг ответа: 0 | Консультация # 186382: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Нужна помощь в решении задач по Операционным системам на ассемблере. Задание 5. Написать фрагмент программы на ассемблере (описание переменных и команды вычислений) в соответствии с указанным вариантом. Использовать операторы организации цикла и индексирование. Поменять местами соседние (первый со вторым, третий с четвертым и т.д.) элементы массива 10 целых без знака типа байт. А так же. Оформить в виде процедур фрагмент программы из задания №5: 1. С передачей параметров через регистры. 2. Через стек. Дата отправки: 17.06.2012, 23:43 Вопрос задал: Flawless (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Лысков Игорь Витальевич (Старший модератор): Здравствуйте, Flawless! 5)
Код : ;Поменять местами соседние (первый со вторым, третий с четвертым и т.д.) ;элементы массива 10 целых без знака типа байт SStack SEGMENT STACK DW 64 DUP(?) SStack ENDS Data SEGMENT ; сегмент данных ar db 2,4,0,40,50,0,255,40,40,10 Data ENDS Code SEGMENT ASSUME SS:SStack,CS:Code,DS:Data Start PROC FAR ; Выполнение соглашений DOS и настройка регистра DS PUSH DS SUB AX, AX PUSH AX MOV AX, Data MOV DS, AX LEA SI, ar ;адрес массива MOV CX, 5 ;число пар элементов массива CH_LOOP: ;цикл MOV AX, [SI] ;читаем слово, по два элемента xchg AL, AH MOV [SI], AX INC SI ;на следующее слово INC SI LOOP CH_LOOP ;циклим по CX RET Start ENDP Code ENDS END Start 6,7)
Код : ;Поменять местами соседние (первый со вторым, третий с четвертым и т.д.) ;элементы массива 10 целых без знака типа байт SStack SEGMENT STACK DW 64 DUP(?) SStack ENDS Data SEGMENT ; сегмент данных ar db 2,4,0,40,50,0,255,40,40,10 Data ENDS .186 Code SEGMENT ASSUME SS:SStack,CS:Code,DS:Data Start PROC FAR ; Выполнение соглашений DOS и настройка регистра DS PUSH DS SUB AX, AX PUSH AX MOV AX, Data MOV DS, AX LEA SI, ar ;адрес массива MOV CX, 5 ;число пар элементов массива CALL CHANGE1 PUSH OFFSET ar PUSH 5 CALL CHANGE2 RET Start ENDP CHANGE1 PROC CH_LOOP1: ;цикл MOV AX, [SI] ;читаем слово xchg AL, AH MOV [SI], AX INC SI ;на следующее слово INC SI LOOP CH_LOOP1 ;циклим по CX RET CHANGE1 ENDP CHANGE2 PROC PUSH BP MOV BP, SP MOV CX, [BP+4];число пар элементов MOV SI, [BP+6];адрес массива CH_LOOP2: ;цикл MOV AX, [SI] ;читаем слово xchg AL, AH MOV [SI], AX INC SI ;на следующее слово INC SI LOOP CH_LOOP2 ;циклим по CX POP BP RET CHANGE2 ENDP Code ENDS END Start  | Консультировал: Лысков Игорь Витальевич (Старший модератор) Дата отправки: 18.06.2012, 01:33 5 нет комментария ----- Дата оценки: 18.06.2012, 08:33 | Рейтинг ответа: 0 |
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка | восстановить логин/пароль Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС! |
Комментариев нет:
Отправить комментарий