Дипломированных специалистов «Информатика и вычислительная техника»


Передача аргументов через регистры



Download 12,06 Mb.
Pdf ko'rish
bet188/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   184   185   186   187   188   189   190   191   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Передача аргументов через регистры
Передача аргументов через регистры — наиболее простой в реализации способ пе-
редачи данных. Данные, переданные подобным способом, становятся доступными
немедленно после передачи управления процедуре. Этот способ можно рекомен-
довать для передачи небольших объемов данных. Недостатки этого способа:
небольшое число доступных для пользователя регистров;
' необходимость постоянно помнить о том, какая информация в каком регистре
находится;
ограничение размера передаваемых данных размерами регистра — если размер
данных превышает 8, 16 или 32 бита, то передачу данных посредством регист-
ров произвести нельзя и передавать приходится не сами данные, а указатели на
них.
Передача аргументов через регистры широко применяется при вызове функ-
ций DOS.
В главе 14 мы обсуждали программу (см. листинг 14.2) с макрокомандой, кото-
рая подсчитывала длину строки, оканчивающуюся символом $. Для сравнения
эффективности применения макрокоманд и процедур при программировании раз-
работаем аналогичную программу (листинг 15.3), но с использованием процеду-
ры CountSymbol, подсчитывающей количество символов в строке с конечным сим-
волом $. Процедура располагается в конце программы. Длина строки — не более
99 символов. Адрес строки передается процедуре как аргумент через регистр si.
Результат подсчета возвращается в регистр
и выводится на экран в вызываю-
щей программе. Для вывода на экран используется прямой доступ к видеобуферу.
Листинг
Передача аргументов через регистры
MODEL small
памяти
STACK 256
стека
include
файла с макросами
;начало сегмента данных
maskd db 71h
вывода на экран
string db "Строка для подсчета
;тестовая строка
db "В строке string
cnt db 2 dup
; количество символов в строке
db
. code
main proc ;точка входа в главную процедуру


332 Глава
Модульное программирование
Листинг
;загрузка адреса строки
передачи смещения в процедуру)
lea
процедуры
call
для
и
lea
;в si - указатель на строку
mov
mov
в es адреса видеопамяти
mov
вывода на экран
mov
вывода на экран
;просмотр вперед - для
и stosw
disp:
lodsb
байта из
в
stosw
значения ах
es:di (видеобуфер)
loop disp
цикла сх раз
теперь выведем количество символов в строке
mov
al две упакованные BCD-цифры
подсчета
or
результата в код ASCII
mov
mov
строки mes
Exit
выхода
main endp
главной процедуры
CountSymbol procnear
CountSymbol - подсчет символов в строке.
входе: si - смещение строки
;На выходе:
- длина в виде упакованного BCD-числа
push ax
используемых регистров
push сх
вперед
mov
длина строки
;блок подсчета символов
go:
lodsb ;загрузка символа строки в al
je endstr
no_end
inc Ы ;приращение счетчика в Ы - количество
символов в строке
loop go
цикла
endstr: ;конец строки
pop сх
регистров из стека
pop ax
ret
из процедуры
;какие-то действия по обработке ситуации
;отсутствия в строке символа $
ret
из процедуры
CountSymbol endp
процедуры
end main
программы

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   184   185   186   187   188   189   190   191   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish