Главная » Просмотр файлов » В.Н. Пильщиков - Программирование на языке ассемблера IBM PC

В.Н. Пильщиков - Программирование на языке ассемблера IBM PC (1110551), страница 14

Файл №1110551 В.Н. Пильщиков - Программирование на языке ассемблера IBM PC (В.Н. Пильщиков - Программирование на языке ассемблера IBM PC) 14 страницаВ.Н. Пильщиков - Программирование на языке ассемблера IBM PC (1110551) страница 142019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 14)

)(анный модуль должен бмть подсоединен к программе на этапе ее компоновки. )Вгя этого надо вмзвать компоновщик по следующему приказу (счнтаем, что программа сдноыпяульна н хранится в файле Р): вгик Р.овт+хозяос.овз, з.кхдг Таким образом, полный цикл обработки программы (трансляция, компоновка и счет) реаливуется следующими тремя прихашми ОС: маям в.авм,в.оиз,в.ъвтг ьхнк в.овз+хоедос.овз, з.ххх; в.кхв Если бы были только процедуры нз ьггзгуля 1ОРКОС, тогда в программах пришлось бм выписывать по несколько команд обращения к этим процедурам.

Например, обращение к процедуре вмвода знакового числа вытащит так: нот ах,я иот пь,э саьь здосоотгит ;аазодюва число гаарэаа аояя завела ; эизсэ прспенури серьезные трудности прн юучении языка ассемблера, т. к, без этих операций ввода-вывода составлать даве проспав, но законченные программы нельзя, а рассказыввть о том, как реалюуютса этн операции, на начальном этапе изучения языка еще рано. В данной книге, чтобм решить этн проблемм, мы предположили, что кто-то для нас уже описал подходшцие процедуры ввода-вывода, и активно нми пользовались во всех наших программах пржтически с самого начала изучения ЯА.

Теперь прнпша пора привести описание всех зтнх операций. В данном разделе рассмотрен одни нз возможнмх вариантов того, как можно определить эти операции. Это как бм образец, по которому можно реюпповвть и иной пакет операций ввода-вывода В»ад-а»вал псар»ав»ив зеу Это достаточно громоздко и не очень удобно, т. к. нужно помнить о том, через какой регистр какой параметр надо перелавать. Для того чтобы сделать вызовы этих процедур более короткими и наглядными, обращения ко всем этим процедурам оформлены как макросы. Например, указанные три команды описаны в виде макроса 01)Т)о|Т, поэтому вместо них достаточно выписать толыго одну строчку - макрокоманду остгнт х,а которая при трансляции программы автоматически заменится на вги команды.

Отметим, что некоторые операции (например, рцчгзн) столь просты, в них всего две-три команды, что их невыгодно реализовывазь в виде процедур. Тэк вот, и эти операции описаны в виде макросов, только в этом случае макрос определяет не обращение к процедуре, а саму операцию. Описание всех этих макросов собрано в отдельном файле с названием 1О.АЗМ (текст его также приведен ниже). Поскольку в этом файле собраны только макроопределения, а по ним, как известно, не формируются никакие машинные команды, то данный файл не образует ьюдуль, который ыожно было бы транслировать отдельно. Поэтому данный файл подключается к программе не.

На -этапе коьгпоновкц, как модуль !ОРКОС.ОВЛ, а еще на этапе трансляции - по директиве П~~СЛЛЛУЕ 10.АЗМ. По вей в текст программы вставляются все макроопрелеления из файла, после чего в лрогршгме уже можно пользоваться ыакрокомандами типа 017ПНТ х,п и ЯХИН. Далее приводятся тексты файлов 10РКОС.АЗМ и 10.АЗМ без дополнительных пояснений, поскольку все используеьгме в них приемы программированьы так или иначе бьши рассмотрены в предыдущих частях книпк а кроые того, зти тексты снабжены необходимыми комментариями. Отметим лишь, что директивы .Х1ЛЗТ в ЛЛЗТ, используемме в фише 10.АЗМ, обьясняются в равд.

14.4. 13З т. Текст файла 1ОРКОС.АЗМ модуль гозвосг проц»дур» эвода-в»вова р»ьхзс рсое»1, рхссо»за»м, рсост1»вь, рсоезвсв, рсосьазвз Ьоеол» ввзвюас а»»»»» е»гьосод» вивод нь экран Пер»вов курсора ва вову» стреху »»рава оврав»»»»: са11 рсос»1 парам»тров »»т Зтое»1 рсос таз р»»Ь дх лиалопмити" 2ай прелмммлрезение на замке ассемблере ]ВМ Рс розЬ ал воч аЬ,2 воч 61,13 Ъак 21Ъ о" 61,10 1вк 21Ъ рор ал 1 р а гео ргосв1 еаар Сд (курсор ва аачало строки] ьу (курсор аа следуваув строку] ргосоакаеи ргое Уаг розЬ Ьр воч Ьр,ер розЬ ал розЬ ах реаЬ з1 зоЪ зр,б учет злака свр 6Ь,1 завод ео злаком (6Ъ 1)2 (ве рово евр ак,о уое рово воч 6Ь,2 ) если вывод со завком в ах<0, зео ах то аЪ| 2, ахв аЬз(ах] розог роаЬ ах сдаста 6Ь (злак) и 61 (аариву] зались цмЪр заела в стек [в обратаом ворадке] ког е1,а1 е1 - кол-зо цмЪр в числе рв1: чах,О ах -> (ак,ек] 61ч сегйеа ах ак 61ч 10! ак ах воа 10 ааа а1,'О иоч [Ьр-8+е1),61 ) цифра -> стек 1ве е1 отвести б байтов в стеле лод часио ог ал,ах авз ров1 еие ве 0 вались миауеа, если еств, в стек Вывод целого числа-слоза со завком или без злака сбрааевве: са).1 ргосоагвом иа входе: ах - вазодвмое число 6Ъ - число со злаком (1] или без вавка (0) 61 - варева лоик завода [> 0] (еслк воле больве, чем авдо, то слева добаввквтса пробела, если мевзве - ввзодвтси ток>ко число] Ввод-вывод.

Прерыванию 249 рор ах р аЬ,З Ззе роа2 воч Ьуке рек [Ьр-В+в1],'-' ьас аь печать пробелов впереди р 2: в аЬ,О ; ал - марика пола вывода звч аь,2 фуакцка 02 прерызаква 21И ров21$ свр акюв1 11е роаЗ ; аврама <= длила числа рпеь ах а1, ° ° Зах 21 рор ах асс ах Змр ров21 печать (ммауса а) цифр роаЗ: аес еь воч а1,(ьр-о+аЦ 1зс 21Ь ог аь,е1 Звк ровЗ заход аз процедура ааа ер,б рор е1 рор ах рор ах р р ьр гаг а Зо )госопввсм еаар **ь**ь*********ь*ь**ь*******************ь* ь * **ь****** ** ' буфер ввода ь аь Звв а1ааЬ аЬ О Ьсу аЬ ЗЗВ роаЬ ОЬ О с клавиатуры (дла работы с фуакцмей ОАИ) ) макс. размер буфера ввода ; часло введеавах сююолов в буфере аср[Р) ; сам буфер ввода ) вомер послед.

счктаа. свмвола аз Ьпй зспомогательваа процедура ввода строки свмзолоа (вклвчаа Батек) в буфер Ьпу (ввод без прыглааевкк) ВУЛОГ44(о~4" ВВОД С ЕЛАВВАХУРЯ ,'**** *ь ** * * * * * **4 ** ь* * * * * * **** 260 Программирование не языке ассемблера )ВМ РС Очястка буфера ввода с юкавяатурн Обращелне: са11 ргосй1саЬ параметров пет ргосй1звЬ ргос Еаг рлвЬ ах зоч св:в1кеЬ,О поч св:ровЬ,О поч аЬ,ООЬ зюч а1,0 Еаг 21Ь ) очястка Ьау отначка 006-буфера рор ах гач ргос21свЫ еабр Ввод символа (с пропуском ялл баз пропуска Еагег] Обращевле: са11 ргосьвсЬ еа входе: а1 - езчег лролустлть (0) ялн ввдать как символ (1) Еа аюкоде: а1 - ззедеввнД свмзол (аЬ ле мепаетск) ргосЕасЬ ргос Йаг рлвЬ Ьх рг1зсЬ1 г вюч Ь1,свкровЬ Езс Ь1 геабдсу ргос зеаг ревЬ ах р вЬ Ох рсвЬ дв ноч дх,св ,вюч бв,дх 1еа дх,лсй-2 ноч аЬ,ОАЬ Езг 21Ь са11 ргосз1 1вс св:в1веЬ вюч св:ровЬ,О р р бв рор дк рор ах геч геаддой аабр йв:дх - адрес Ьсй[-2) ввод строка з буфер (зклвчал Езгег) ) курсор ла полую строку экране в длаве учесть дачек ) схолько слмзолоз ула счатаво лз Ьсу ) номер последнего счвтаяяого спиноза след.

помер Васи-амзси. Пдер маюю сир Ь1,се:е1звЬ; ве посладавй свмвол буфера) )Ь ргбзсЬ2 фас рг1зсЫО ) буфер пе считал до ковца) свр а1,0 счвчваатз лл колец строки (Вахах)2 3зе рг1асЫ РгбзсЫО: са11 геадпай ;)ар рг1зсЫ ргбзсЬ2: зхю са:рсаЬ,Ы )запо~ювтз помер счвтпааююго символа меч ЬЬ,О иоч в1,се:Ьвб(Ьх-1) )а1с символ Рор Ьх геа ргосбвсЬ авйр довзод в буфер повторите ввод целого числа (со завком в баз) размером в сиозо ) Обралевив: са11 ргос1вбап Ва входе: вот Ва звходе: ах - зведеивое число колцов строк звачале Ох - вводвмоа число сЬ 0 - вет цифра, с1 0 - заюс с1 1 - Ааиаус "ДИАЛОГ.

МИФИ ргос1збзг ргьс йаг роеЬ Ьх рсеЬ ск р ьа ; пропуск вробеиов и рг1а1вс1: ают а1,0 са11 ргосбзсЬ смр а1,' 5а ргбЫа01 ) проверка ва злак зюч Ох~0 иоч сх,О сир а1,'+' 2в рг1ы1зх2 свр а1,'-' 5зе рг1в1зчЗ иот с1,1 ; цикл по ци4рам ргбз1вг2: воч а1,1 са11 ргос1зсЬ а1 - очаредвсй сююол (с пропуском Вааег) пробел) ) а1 - очередпой символ (Кичаг - символ) 252 РРСГРЕНННРСЗЗНИЕ ЛЕ ЯЗЫКЕ ЕСЕЕМОПЕРЕ (ВМ РС >'9' 2 Ъх - цвфра ках число ех - вредмдунее число *10 >ууууЬ (дх<>04 -> переполнение (цифра бнл мпвусд модуль отриц. числа > ВОООЬ 2 внход овибке рг1адаГЗ ° сар а1,'9' фа рк1а1ик4 асд а1,'О' 2Ь рг1едагд ' ; <'0 ° аоч сЬ,1 сЬ 1 - есть цифра кюч аЬ,О аоч Ьх,ах воч ах,дх аю1 се:рггеа де ргочй1 адд х,Ьх уе ргоч21 аюч дх,ах ( сласти число в дх дар ргда1ак2 ; к след.

символу ловчились дадри (число а дх) рк1а1ак4: аоч ах,дх азр сЬ,1 били цвфрн2 2ае ркаоддд сар с1,1 2ае рг1а1ас5 сар ах,доООЬ ~а ркочй1 аед ах азата с минусом рк1а1вк5: рор дх рор сх рор Ьх кек рккеа дч 10 ; — — — — — реакции ва оаибхв лри вводе числа ргочд1: 1еа сх,рюьадоч21 ; лереволаевие 9пр ркекк ркаод1дз 1еа сх,ркведаодуд; вет цвфр ргакк: рееЬ се ( печать еообпевив об рор де да са 1еа дх,рюаед вюч адз9 оегесг 1ак 21Ь аоч дх,сх вюч аЬ,9 оеаегк 1ВС 21Ь са11 ркоса1 Взад-а вод Лрер вием Вбг. СгагвЬ а аЬ,ВСЬ Взк 21Ь РпааУ аЬ 'Овибка при вводе числаю ','9' ркзмчоч11 аЬ 'первполаеаив', '9' ркзмчаоа19 ап 'вет Пирра', '9' ркос1а1ас саар 1осоав еааз ааа ковал модула 1оргос 1ЭЗЗ.

Текст файла 1О.АБЬ1 .х11эс;запрет запаса этого файла з ивстиаг Файл с махросамв авода-завода, подклвчавмзЮ к програзеае по дврахтазе: ьзсьпав 1о.аав окодчьпдд счгть программы ;*******************аз**э*ээээ**э**ээээ**э**э***ээээ***э** ° * Окоачавив счета програюеип образ(авиа: 91з1зь пв входе: а1 - код запаривала (мозао вгаорироаата) сьахаЬ васко в аЬ,(СЬ 1ач 21Ь васа *е * * * * * * ВВВОд иь экрьб (в текстовом рахима) ***э***э************ ° ***ээ************э******* ******ээ***** ( Переход па возуэ строку обрааваиег ввт11зв эхска ркоса1 куак авт11зв васко са11 ркоса1 екав Ввзод симзоиа обраиевив: опчсь с где с - 19, кп плв вб диялаГ"миеи 264 Программирование не немке вссембнере )ВЫ РС ооасИ иваго с рсеЬ дх роеЬ вх мот 41,с вот аИ,2 1вг 21Ь рор ах рор дх еайю Вюмод строки символов обравенпею оваагк иа ыюодею ю(еюю(х - яачалзнюй адрес строки (в конца строки д.б. символ 0, код 36 (24Ь)) онкеГг васко ревИ ах змч аЬ,9 Ьвг 21Ь рор ах евйв Вмзод целого со злаком размером в слово обраю(нянею ов<1вг вмв (,1еад) где асн - виводммое висло: 116, г16, юю26 1еву - парила воля змюодаю 10, гу, нВ (со звачеввем > О) Особенности внаода ю если лоле болене, чем ладо, то слева добавляется пробоин, если мевъее - анводатся толзхо число (целиком)) ло умолчввн» 1еву 0 вхсгв ргососганвюуаг оокбвс юного зюзю,1еву осгасн <воюв, <1евУ>ю 1 евдн Внзод целого беа звала размером в слово обраневиею ос<нояб вон (,1еву) зюзю я 1еау - хак а овх1аг оаттогй иваго вна,1еву овкввн <вон>,<1евд>,0 евйв Ввод-амвсд.

Прерыванию йбб Вспомогателавий макрос проверки иаписалик имели равимми (боламими и махами) буквами влив пасто аале,чагдаалв,авв аав 0 дгр Г,<чаг1аавв> 101дв <аале>,<ч> аав 1 вх1гм аад10 вадя евдм осввом пасто вяв,1еад,вада 1оса1 гаддхг рпвЬ ах рпюЬ дх авив <впм>,<дх,пг,пх,дХ> 10 гаддхч 10Ь <1авд> иоч в1,0 а1вв моч а1,1авд аад10 хслд ах,дх а1ва 10Ь <1евд> моч д1,0 а1ва моч д1,1авд еадйд юим ах,аом евд10 да,а10» са11 ргосопввпи рор дх рор ах евдм гаддх? ;;опа дх,1авд †> ); вяч а1,1аад ;; хайд ах,дх осс вяв,1авд (вам<>дх) --> моч 01,1аад моч ах,вяв ах аяа, 01 1ввд, дл=в1дв ДИАЛОГ-МИФИ" Вспомогатвламий макрос длл опадая (а1дв 1) м опачогд (=О) 266 Прогрвммнрсаанне нв языке ассемблера 2ВМ РС ***я**<**<*<****** * * * **< * * ввод с Бдьвдьтууи * *>*<****<****>**<****** очистив бубера ввода с хлавпатури обрапввие2 21паЬ ехахв рхосй1свЬсбах 21пеЬ васко са11 рхос21пеЬ еабм ехпхп рхос1всЬ2йах ЬвсЬ массо х 1оса1 хеуах2 заме <х>,<аЬ,ЬЕ,ЬЬ,ад>,сабаху 12 хебах2 хсЬВ аЬ,а1 моч а1,0 са11 рхосЬвсЬ псЬВ аЬ,а1 е1ве ваяю <х>,<а1,ЬЬ,Ь1,аб>,хебах2 М хебах2 пюч а1,0 ;2х=а1 са11 рхос1всЬ е1аа рпвЬ вх воч а1,0 са11 рхос1псЬ воч х,а1 рор ах аи евдо евйа х - ве аЬ и ие а1 Ввод свмвола (с пропусхсм попцов строп, т.

Характеристики

Тип файла
DJVU-файл
Размер
4,55 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

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