Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » [2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП

[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП (Всякие мелочи), страница 13

PDF-файл [2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП (Всякие мелочи), страница 13 Системное программирование (17501): Другое - 4 семестр[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП (Всякие мелочи) - PDF, страница 13 (17501) - СтудИзба2018-01-09СтудИзба

Описание файла

Файл "[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП" внутри архива находится в папке "Всякие мелочи". PDF-файл из архива "Всякие мелочи", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "системное программирование" в общих файлах.

Просмотр PDF-файла онлайн

Текст 13 страницы из PDF

Ниже приводится исходный текстэтого примера:MYCODE SEGMENT 'CODE'ASSUME CS:MYCODE, DS:MYCODELET DB 'A'PADW ?start:; Загрузка регистра сегмента данныхPUSH CSPOP DS; Вывод символаMOV DL , LETCALL PUTCH; Перевод строкиCALL CRLF;Подготовка длинного адресаLEA BX , TESTP582009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”MOV PA , BXMOV PA + 2 , DS; Задание параметраMOV DL , 'B'PUSH DX; Дальний вызовCALL DWORD PTR CS:[PA]POP DX; Перевод строкиCALL CRLF; Ожидание завершения программыMOV AH, 01HINT 021H; Выход из программыMOV AL, 0;выход из пpогpаммы с возвpащением errorlevel 0MOV AH, 4CH; Активизация системной функции для завершения программыINT 21H; Процедура перевода строкиCRLFPROCMOV DL , 10CALL PUTCHMOV DL , 13CALL PUTCHRETCRLFENDP; Процедура вывод символаPUTCH PROC NEARMOV AH , 02HINT 021HRETNPUTCH ENDP; Процедура для дальнего вызоваTESTP PROCFARMOV BP , SPMOV DX , 4 + [BP]MOV AH , 02HINT 021HRETFTESTP ENDP; Конец сегментаmycode ENDSEND startБлок-схема данной программы приведена в разделе 17.3.

Примеры блок-схем программ. Щелкните на номере раздела и найдете блок-схему.В данном примере рассмотрены разные процедуры и их вызовы, которые мы ужерассмотрели ранее. Здесь продемонстрированы различные способы вызова коротких идальних процедур (условно удаленных).10.6. Листинг программы с процедурамиПосле компиляции мы получим следующий листинг программы.

Действия по созданию программы были описаны выше в разделе 3. Ввод текста, компиляция, редактирование и отладка. С содержанием специальной информации листинга программы мы познакомимся позже (см. в разделе ).Microsoft (R) QuickAssembler for QuickC Version 2.51000000000001410000MYCODE SEGMENT 'CODE'ASSUME CS:MYCODE, DS:MYCODELET DB 'A'PADW ?03/23/9592009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”0003start:; Загрузка регистра сегмента данных0003 0EPUSH CS0004 1FPOP DS; Вывод символа0005 8A 16 0000 RMOV DL , LET0009 E8 0030CALL PUTCH; Перевод строки000C E8 0022CALL CRLF;Подготовка длинного адреса000F 8D 1E 0041 RLEA BX , TESTP0013 89 1E 0001 RMOV PA , BX0017 8C 1E 0003 RMOV PA + 2 , DS; Задание параметра001B B2 42MOV DL , 'B'001D 52PUSH DX; Дальний вызов001E 2E: FF 1E 0001 RCALL DWORD PTR CS:[PA]0023 5APOP DX; Перевод строки0024 E8 000ACALL CRLF; Ожидание завершения программы0027 B4 01MOV AH, 01H0029 CD 21INT 021H; Выход из программы002B B0 00MOV AL, 0;выход изпpогpаммы с возвpащением errorlevel 0002D B4 4CMOV AH, 4CH; Активизация системной функции для завершения программы002F CD 21INT 21H; Процедура перевода строки0031CRLFPROC0031 B2 0AMOV DL , 100033 E8 0006CALL PUTCH0036 B2 0DMOV DL , 130038 E8 0001CALL PUTCH003B C3RET003CCRLFENDP; Процедура вывод символа003CPUTCH PROC NEAR003C B4 02MOV AH , 02H003E CD 21INT 021H0040 C3RETN0041PUTCH ENDP; Процедура для дальнего вызова0041TESTP PROCFAR0041 8B ECMOV BP , SP0043 8B 56 04MOV DX , 4 + [BP]0046 B4 02MOV AH , 02H0048 CD 21INT 021H004A CBRETF004BTESTP ENDP; Конец сегмента004Bmycode ENDSEND startMicrosoft (R) QuickAssembler for QuickC Version 2.5103/23/9Segments and Groups:N a m eMYCODE .

. . . . . . . . . . . .Length004BPARAAlignNONECombine Class'CODE'2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”60Symbols:N a m eCRLF . . . . . . . . . . . . . .= 000BTypeValueAttrN PROC0031MYCODE. . . . . . . . . . . . . .L BYTE0000MYCODEPA . . .

. . . . . . . . . . . .PUTCH . . . . . . . . . . . . .= 0005L WORDN PROC0001003CMYCODEMYCODELETSTART. . . . . . . . . . . . .L NEAR0003MYCODETESTP= 000A. . . . . . . . . . . . .F PROC0041MYCODE@CPU . . . . . . . . . . . . . .@FILENAME .

. . . . . . . . . .@VERSION . . . . . . . . . . . .15:1728:3041:4354:56TEXTTEXTTEXTLengthLengthLength0101hfourd520Line Numbers:fourd.asm(1) 1:3 2:4 3:5 4:6 5:7 6:8 7:9 8:10 9:11 10:12 11:13 12:14 13:15 14:1616:18 17:19 18:20 19:21 20:22 21:23 22:24 23:25 24:26 25:27 26:28 27:2929:31 30:32 31:33 32:34 33:35 34:36 35:37 36:38 37:39 38:40 39:41 40:4242:44 43:45 44:46 45:47 46:48 47:49 48:50 49:51 50:52 51:53 52:54 53:5555:57 56:58 57:59 58:60 (0)58 Source Lines58 TotalLines17 Symbols41160 Bytes symbol space free0 Warning Errors0 Severe ErrorsРезультат работы данной программы, которая, кстати, почти соответствует требованиям 3-й ЛР по курсу очень простые:АВПосле вывода 2-х символов, каждый на отдельной строке, программа ожидает нажатия любой клавиши и затем заканчивается.2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”6115. Особенности работы некоторых команд для ЛРВ данном разделе пособия мы рассмотрим особенности работы некоторых командмикропроцессора.

Эти команды вы должны использовать при программировании на языкеАссемблер для выполнения ЛР. Полный перечень команд и их детальное описание Вынайдете в справочниках, рекомендованной литературе и справочных системах систем программирования на Ассемблере.15.1. Команда XLATКоманда XLAT/XLATB (transLATe Byte from table) используется для перекодировки байтовых символов. Синтаксис команды:XLAT [адрес таблицы символов]ИлиXLATВОперанд [адрес таблицы символов] является необязательным и игнорируется привыполнении команды. Команды XLAT и XLATB являются аналогичными. Логика работы команды следующая:1.

В регистр AL заносится символ для перекодировки2. Длинный адрес DS:BX определяет адрес таблицы перекодирования символов,длинна которой не может превышать 256 символов.3. После выполнения команды XLAT в AL перемещается символ из таблицы поадресу [BX + AL] или адрес таблицы плюс AL.В следующем примере выполняется перекодировка 2-х байтового слова в символьный формат. Результат записывается в байтовый массив String, а к этому шестнадцатеричному представлению приписывается символ “h”.

Строка затем выводиться на экран.hexString…DBdb'0123456789ABCDEF''$',0;XLATPUSH DSPOP ESLEADI, Stringmovbx, OFFSET hexmovax, 0FAAhmovcx, 2loop1: xchgah, alpushaxshral, 1shral, 1shral, 1shral, 1xlatstosbpopaxpushaxandal, 00001111bxlatstosbpopax;;;;; Таблица перекодировкиСтрока для копирования StringУказатель DS:BX на таблицуЧисло ддля перевода в AXЧисло байтов 2 – параметр цикла; Байты выводятся в обратном порядке; Сохраняем исходное; Сдвигаем вправо на 4 разряда; Получить ASCII код в AL; Копируем в строку String (DS:[DI]) и DI++; Восстанавливаем число; И сохраняем снова; Маскируем старшую шест. цифру; Получить ASCII код в AL; Копируем в строку String (DS:[DI]) и DI++Восстанавливаем число622009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”looploop1; Переходим к младшему байту (он был первым)movax, 'h'; добавляем 'h' в AXstosw; копируем двабайта (h и 0) в строку; заменой порядка в памяти; Выводим строку на экранMOV AH, 09HLEA DX, STRINGINT 021HВ результате работы этого фрагмента программ на экране мы увидим:0FAAh_Команда XLAT занимает в памяти всего 1 байт.

Подобную операцию перекодировки, при всех прочих равных условиях, можно было бы выполнить и так:MOV AH, 0HMOV SI, ALMOV AL , [BX][SI]Или:ADD BX, ALMOV AL , [BX]Однако, в первом случае размер программы в байтах равен 6-ти байтам, а во втором случае 4-м байтам и портится значение регистра BX. Поэтому применение командыXLAT является предпочтительным.15.2. Команда MOVS, префикс REP и команды цепочекКоманда MOVSB и ее разновидности используется для перемещения цепочек байтовых чисел. Синтаксис команды:MOVS <приемник> , <источник>ИлиMOVSОперанды в команде при программировании на языке Ассемблер играют роль подсказки и в операции не участвуют.

Предусмотрены команды MOVSB (байты), MOVSW(слова) и MOVSD (двойные слова только для 386 МП и старше). Источник определяетсяадресом на DS:SI, а приемник определяется адресом на ES:DI. Данные регистры передвыполнением команды должны быть загружены. Для повторения команды используетсяспециальный префикс REP, определяющий циклический режим повторения команды изанимающий в ОП 1 байт. Число повторений определяется следующим образом:− Числом, которое предварительно заноситься в регистр CX.− Длинной строки источника (конец строки задается нулевым числом – Null terminated String).Примечание. Для некоторых подпрограмм ОС символом конца строки считается символдоллара ‘$’.

Это нужно учитывать при разработке программ. Например, функция выводастроки на экран (AH = 9, INT 21h) завершает вывод строки до первого символа ‘$’. Если впрограмме возникает необходимость вывода на экран этого символа (‘$’), то нужно воспользоваться процедурой (AH = 2, INT 21h).При выполнении команды MOVSB в циклическом режиме выполняется автоматическая коррекция индексных регистров SI и DI, определяющих смещения источника иприемника.

Эти регистры в циклах изменяются на 1,2 или 4 в зависимости от типа команды. Кроме того, при этом важным является значение флага DF (direction flag - флаг направления). Если флаг установлен в 0, то пересылка цепочки выполняется слева направо,начиная со значений младших адресов к старшим. Если флаг установлен в 1, то пересылкацепочки выполняется справа налево, начиная со значений старших адресов к младшим.Значения регистров SI и DI будут либо увеличиваться (DF=0) либо уменьшаться (DF=1)2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”63на заданное значение.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5259
Авторов
на СтудИзбе
420
Средний доход
с одного платного файла
Обучение Подробнее