[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП (Всякие мелочи), страница 4
Описание файла
Файл "[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП" внутри архива находится в папке "Всякие мелочи". PDF-файл из архива "Всякие мелочи", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "системное программирование" в общих файлах.
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
Компиляция и листинг программ АссемблераДалее нужно перейти в режим командной строки и запустить программу на компиляцию:C:\BORLANDC\TASM>tasm.exe /l /zi /c first.asm↵Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland InternationalAssembling file:Error messages:Warning messages:Passes:Remaining memory:first.asmNoneNone1414kПримечание. Символ “↵” не будет появляться на экране. Более подробно парамет-ры запуска компилятора TASM.EXE мы рассмотрим ниже.Если при компиляции обнаружены ошибки, например, Вы ошиблись в названиикоманды Ассемблера (я сознательно заменил в программе команду PUSH на командуPASH), то в поток командной строки будет выведено сообщение с номером строки текста,в которой была обнаружена ошибка и ее причина на английском языке (см. ниже – выделено жирным):C:\BORLANDC\TASM>tasm /l /zi first.asm↵Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland InternationalAssembling file:first.asm**Error** first.asm(6) Illegal instructionError messages:1Warning messages: NonePasses:1Remaining memory: 414kТекст сообщения об ошибке - “Illegal instruction” означает “недопустимаякоманда”.
Если при запуске компилятора задан параметр “/z”, то будет распечатана тастрока, в которой была обнаружена ошибка (см. ниже).C:\BORLANDC\TASM>tasm /z /zi /l first.asm↵Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland InternationalAssembling file:first.asmPASH CS**Error** first.asm(6) Illegal instructionError messages:1Warning messages: NonePasses:1Remaining memory: 414kПараметр запуска компилятора “/l”, заставляет ассемблер сформировать специальный документ – листинг программы.
Если не указано другого имени, листинг формируется с названием файла исходного текста программы и расширением - *.lst. Листинг форматируется компилятором Ассемблера и содержит много полезной информации для программиста (описание листинга смотри ниже). Листинг, полученный в нашем случае будетиметь вид:Turbo AssemblerPage 1first.asmVersion 3.124/02/09 12:46:17132009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”10000230000400015гистра данных DS60001700028ран9000310000511000A1213000C14000E15001016001217410E1FPUSH CSPOP DS; Вывод одного символа на эк-B4 022E: 8A 16CD 21MOV AH, 020000rMOV DL, LETINT 21H; Выход изпрограммыMOV AL, 0MOV AH, 4CHINT 21HMYCODE ENDSEND STARTB0 00B4 4CCD 21Turbo AssemblerPage 2Symbol TableSymbol Name??DATE??FILENAME??TIME??VERSION@CPU@CURSEG@FILENAME@WORDSIZELETSTARTGroups & SegmentsCODEMYCODEMYCODE SEGMENT 'CODE'ASSUMECS:MYCODE, DS:MYCODELET DB 'A'START:; Загрузкасегментного ре-Version 3.1Type24/02/09 12:46:17ValueText"24/02/09"Text"first"Text"12:46:17"Number 030AText0101HTextMYCODETextFIRSTText2ByteMYCODE:0000#3 10NearMYCODE:0001#4 17Bit Size Align Combine Class160012 ParanoneВ листинге также фиксируются ошибки, причем в том месте, где их определилкомпилятор (Обращу Ваше внимание на то, что это совсем не обязательно то место, гдедействительно встретилась ошибка).
Фрагмент листинга с ошибкой:…5; Загрузкасегментного регистраданных DS6PASH CS**Error** first.asm(6) Illegal instruction70001 1FPOP DS142009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”8; Вывод одного символа на эк-ран….В конце листинга также дается перечень ошибок, которые были обнаружены…Error SummaryPASH CS**Error** first.asm(6) Illegal instructionРезультатом правильной работы компилятора будет формирование в текущем каталоге (у нас - C:\BORLANDC\TASM) объектного модуля с именем файла “FIRST.OBJ”.Проверить его наличие можно с помощью команды DIR, не выходя из режима команднойстроки. Например:C:\BORLANDC\TASM>dir first.obj↵Том в устройстве C имеет метку SYSTEMСерийный номер тома: D08B-21A4Содержимое папки C:\BORLANDC\TASM24.02.200913:23354 FIRST.OBJЕсли компиляция завершена с ошибками, то объектный модуль не формируется инужно вернуться к этапу синтаксической отладки исходного модуля.
После успешнойкомпиляции можно приступить к следующему этапу редактированию связей и созданиюисполнимого модуля.2.3. Редактирование связей и его результатыНа самом деле операция редактирования связей важна для многомодульных программ, то есть, программ, состоящих из нескольких объектных модулей. Но правила таковы, что даже для программ состоящих из одного модуля эту стадию опустить нельзя.Нужно также учитывать, что на этой стадии формируется исполнимый модуль программыв виде *.EXE или *.СОМ файлов.
Для запуска редактирования связей нужно запуститьутилиту TLINK следующим образом:C:\BORLANDC\TASM>tlink.exe /v /l /m first.obj↵Turbo Link Version 5.1 Copyright (c) 1992 Borland InternationalWarning: No stackПримечание. Символ “↵” не будет появляться на экране. Более подробно параметры запуска редактора связей TLINK.EXE мы рассмотрим ниже. Предупреждение“Warning: No stack ” выдается по причине отсутствие явного описания сегмента стека впрограмме на Ассемблере.При таком завершении редактора связей исполнимый модуль типа *.EXE будетпостроить, а его формирование можно проверить командой DIR.
Например:C:\BORLANDC\TASM>dir first.exe↵Том в устройстве C имеет метку SYSTEMСерийный номер тома: D08B-21A4Содержимое папки C:\BORLANDC\TASM24.02.200914:20990 FIRST.EXEЕсли при редактировании возникают ошибки, то их содержание и место появляетсяна дисплее.C:\BORLANDC\TASM>tlink /v /l /m first↵Turbo Link Version 5.1 Copyright (c) 1992 Borland InternationalError: Undefined symbol VAR in module FIRST.ASM2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”Warning: No stack15В этом случае команда обращается к внешней переменной (из другого модуля), нопри редактировании связей ссылка на нее не была найдена.
При редактировании связеймы можем получить специальный файл (*.map) содержащий информацию о редактировании и возможные ошибки. Такой файл создается при задании параметра “/m”. такой файлназывается картой редактирования (map) и играет большую роль при создании многомодульных программ и их отладки. Ниже приведен пример такого файла с включеннойошибкой.Start StopLength Name00000H 00016H 00017H MYCODEAddressPublics by NameAddressPublics by ValueClassCODELine numbers for first.obj(FIRST.ASM) segment MYCODE7 0000:00018 0000:000210 0000:00030000:000512 0000:000A14 0000:000C15 0000:00110000:001317 0000:0015Error: Undefined symbol VAR in module FIRST.ASMProgram entry point at 0000:0001Warning: No stack1116При правильном завершении редактирования связей ошибки должны отсутствовать:Start StopLength Name00000H 00016H 00017H MYCODEAddressPublics by NameAddressPublics by ValueClassCODELine numbers for first.obj(FIRST.ASM) segment MYCODE7 0000:00018 0000:000210 0000:00030000:000512 0000:000A14 0000:000C15 0000:00110000:001317 0000:0015Program entry point at 0000:0001Warning: No stack11162.4.
Исполнение программы Ассемблера и его результатыПосле выполнения всех шагов полученная программа может быть выполнена в режиме командной строки. Для этого нужно ее запустить:C:\BORLANDC\TASM>first.exe↵A2.5. Запоминание результатов в отдельном файлеЕсли программа выводить информацию на экран и работает в пакетном режиме(т.е. выполняется и сама завершается, как в нашем примере), то можно перенаправить вывод на дисплей в текстовый файл и затем его просмотреть или распечатать. В нашем примере это может быть сделано так:162009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”C:\BORLANDC\TASM>first >> first.txt↵Сформированный файл “first.txt” содержит одну строку, в начальной позиции которой будет напечатана буква “А”.2.6.
Отладка программ, начальные сведенияДля отладки программ в системе программирования TASM используется утилитаTD.EXE. Для ее полнофункциональной работы на этапах компиляции и редактированиясвязей мы установили специальные режимы (см. выше):− TASM.EXE – режим “/zi” – включение отладочной информации в объектный модуль.− TLINK.EXE – режим “/v” - включение отладочной информации в исполнимыймодуль.В этом случае мы можем запустить TD и иметь в отдельном окне исходный текстнашей программы.
Запуск TD выполняется так:C:\BORLANDC\TASM>TD.EXE first.exe↵После запуска в окне командной строки появиться окно отладчика. Нажимая клавишу F7, мы можем по отдельным командам (по шагам) выполнить нашу программу. Результат работы программы мы можем увидеть, нажав комбинацию Alt+F5. Более подробно об отладке и отладчике мы будем говорить ниже.
Для завершения отладчика нужнонажать “Alt + x”.Практика.1. Выполните все действия, связанные с созданием простой программы, изложенныев данном разделе.2. Познакомьтесь с отладчиком.3. Сделайте простые изменения в программе, создайте и отладьте ее заново.2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”173. Ввод текста, компиляция, редактирование и отладкаВ предыдущем разделе мы кратко на простейшем рассмотрели технологическиевопросы, связанные с подготовкой и созданием Программ на Ассемблере. В этом разделемы более детально обратимся к основным понятиям и особенностям такой работы.Процессы преобразования программ можно упрощенно представить следующимрисунком. На этом рисунке представлены основные компоненты систем программирования, которые участвуют в обработке программ.