Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
2017-11-17 | 325 |
5.00
из
|
Заказать работу |
|
|
TITLE SQR.ASM; Извлечение корня квадратного
stacksgsegmentpara stack'Stack'
; назначить область памяти для стека
dw 32 dup(32)
stacksgends
datasg segmentpara'Data'
; определить данные
vvdb 'введите аргумент n (до 64 тыс.) $'
vivdb10,13,'значение корня= $'
srdb3 dup(0)
db 13,10,'$'
bufdb5,0,0,0,0,0,0,0
ndw?
edw1
adw?
bdw?
valdw?
twodw2
datasgends
codesgsegmentpara'Code'
; программныйсегмент
assume cs:codesg,ds:datasg,ss:stacksg
beginproc far
push ds
subax,ax
pushax
movax,datasg
movds,ax
movah, 9
movdx,offset vv
int21h
movah, 0ah
movdx,offset buf
int21h
call str2bin
movdx,0
movax,n
incax
divtwo
subdx,dx
mova,ax
iter: movax,n
diva
addax,a
movdx,0
divtwo
subdx,dx
movb,ax
subax,a
cmpax,e
jbemet
movax,b
mova,ax
jmpiter
met:movah,9
movdx,offset viv
int21h
call bin2str
movah,9
movdx,si
int21h
ret
bin2strproc near
movcx,10
movsi,offset sr+2
movax,b
m1: subdx,dx
divcx
or dl,30h
mov[si],dl
decsi
cmpax,0
jnem1
ret
bin2strendp
str2binproc near
movdi,1
movcx,0ah
movsi,offset buf+1
subbh,bh
movbl,[buf+1]
m2: moval,[si+bx]
andax,0fh
muldi
addn,ax
movax,di
mulcx
movdi,ax
decbx
jnzm2
ret
str2binendp
beginendp
codesg ends
endbegin
ЛистингпрограммыSQR.ASM.
Microsoft (R) Macro Assembler Version 5.103/19/94 23:44:19
SQR.ASM; Извлечение корня квадратного
TITLESQR.asm; Извлечение корня квадратного
0000stacksg segmentpara stack'Stack'
; назначить область памяти для стека
00000020[dw 32 dup(32)0020]
0040 stacksg ends
0000 datasgsegmentpara'Data'
; определить данные
0000A2 A2 A5 A4 A8 E2 vv db'введите аргумент n (до 64 тыс.)$'
A5 20 A0 E0 A3 E3
AC A5 AD E2 20 6E
20 28 A4 AE 20 36
34 20 E2 EB E1 2E
29 20 24
00210A 0D A7 AD A0 E7vivdb10,13,'значениекорня= $'
A5 AD A8 A5 20 AA
AE E0 AD EF 20 20
3D 20 24
00360003[sr db3 dup(0)
]
003A0D 0A 24db13,10,'$'
003D05 00 00 00 00 00bufdb5,0,0,0,0,0,0,0
00 00
00450000 ndw?
00470001 edw1
00490000 adw?
004B0000 bdw?
004D0000 valdw?
004F0002 twodw2
0051datasgends
0000codesgsegmentpara'Code'
; программныйсегмент
assume cs:codesg,ds:datasg,ss:stacksg
0000begin procfar
00001Epushds
00012B C0 sub ax,ax
000350pushax
0004B8 ---- R mov ax,datasg
00078E D8 mov ds,ax
0009B4 09 mov ah, 9
000BBA 0000 R mov dx,offset vv
000ECD 21 int 21h
0010B4 0A mov ah, 0ah
0012BA 003D R mov dx,offset buf
0015CD 21 int 21h
0017E8 007D R callstr2bin
001ABA 0000 mov dx,0
001DA1 0045 R mov ax,n
002040inc ax
0021F7 36 004F Rdiv two
00252B D2 sub dx,dx
0027A3 0049 R mov a,ax
002AA1 0045 R iter: mov ax,n
|
002DF7 36 0049 Rdiv a
003103 06 0049 Radd ax,a
0035BA 0000 mov dx,0
0038F7 36 004F Rdiv two
003C2B D2 sub dx,dx
003EA3 004B R mov b,ax
00412B 06 0049 Rsub ax,a
00453B 06 0047 Rcmp ax,e
004976 08 jbe met
004BA1 004B R mov ax,b
004EA3 0049 R mov a,ax
0051EB D7 jmp iter
0053B4 09met: mov ah,9
0055BA 0021 R mov dx,offset viv
0058CD 21 int 21h
005AE8 0064 Rcallbin2str
005DB4 09 mov ah,9
005F8B D6 mov dx,si
0061CD 21 int 21h
0063CBret
0064bin2str procnear
0064B9 000A mov cx,10
0067BE 003A R mov si,offset sr+2
006AA1 004B R mov ax,b
006D2B D2 m1: sub dx,dx
006FF7 F1 div cx
007180 CA 30ordl,30h
007488 14 mov [si],dl
00764Edec si
00773D 0000 cmp ax,0
007A75 F1 jne m1
007CC3ret
007Dbin2str endp
007Dstr2bin procnear
007DBF 0001 mov di,1
0080B9 000A mov cx,0ah
0083BE 003E R mov si,offset buf+1
00862A FF sub bh,bh
00888A 1E 003E Rmov bl,[buf+1]
008C8A 00 m2: mov al,[si+bx]
008E25 000F and ax,0fh
0091F7 E7 mul di
009301 06 0045 Radd n,ax
00978B C7 mov ax,di
0099F7 E1 mul cx
009B8B F8 mov di,ax
009D4Bdec bx
009E75 EC jnz m2
00A0C3ret
00A1str2bin endp
00A1begin endp
00A1codesgends
end begin
Segments and Groups:
N a m e LengthAlign Combine Class
CODESG......... 00A1 PARANONE 'CODE'
DATASG......... 0051 PARANONE 'DATA'
STACKSG........ 0040 PARASTACK'STACK'
Symbols:
N a m eType Value Attr
A........... L WORD 0049 DATASG
B........... L WORD 004B DATASG
BEGIN......... F PROC 0000 CODESG
Length = 00A1
BIN2STR........ N PROC 0064 CODESG Length = 0019
BUF.......... L BYTE 003D DATASG
E........... L WORD 0047 DATASG
ITER.......... L NEAR 002A CODESG
M1........... L NEAR 006D CODESG
M2........... L NEAR 008C CODESG
MET.......... L NEAR 0053 CODESG
N........... L WORD 0045 DATASG
SR........... L BYTE 0036 DATASG
Length = 0004
STR2BIN........ N PROC 007D CODESG Length = 0024
TWO.......... L WORD 004F DATASG
VAL.......... L WORD 004D DATASG
VIV.......... L BYTE 0021 DATASG
VV........... L BYTE 0000 DATASG
@CPU..........TEXT0101h
@FILENAME.......TEXTsqr3
@VERSION........TEXT510
95 SourceLines
95 Total Lines
28 Symbols
47690 + 382785 Bytes symbol space free
0 Warning Errors
0 SevereErrors
Формируемыйприассемблированиилистинг(дляего вызова используютмакрокомандыMS DOS: TYPE или COPY) состоит из 2-х частей:излистингапрограммыисводной информации о сегментах и идентификаторах программы.
Листинг программы содержит команды исходной ассемблерной программыисоответствующиеимобъектные коды в следующих форматах:
· левыйстолбец:16-ричноезначениесмещенияадресакоманды (счетчик команд - IP) от начала сегмента;
· праваячасть: содержит операторы и псевдооператоры ассемблера (команды и директивы программы);
· всреднейчасти объектные коды: для сегмента стека и сегмента данныхчисла,запоминаемые в соответствующих ячейках памяти; для сегмента команд это коды машинных команд МП, соответствующих операторам ассемблера.
|
Своднаяинформация о сегментах (segments and groups) и идентификаторах (name) дает подробную их характеристику.
В конце листинга приводятся сообщения об ошибках в программе.
Примечание. Приассемблированиии редактировании связей могут быть получены еще 2 листинга с дополнительной информацией:
листинг перекрестных ссылок указывает номер строки программы, в которой определен каждый идентификатор, и номер тех строк, в которыхимеютсяна него ссылки (этот листинг можно получить, если на запросассемблераоCross reference ввести имя файла prog (а не Nul.CRF- поумолчанию),при этом в основном листинге программы добавится столбец с номерами строк);
листинг распределения памяти содержит подробные сведения о сегментахвсех блоков программы, объединяемых загрузчиком LINK (листинг содержится в файле prog.map).
Примечание. Еслилистинг объемный и не помещается целиком на экране дисплея, можно приостановитьеговывододновременнымнажатиемклавиш Ctrl-NumLock(дляпродолжениявывода нажать любую клавишу); для полученияраспечаткилистинга на принтереследуетодновременно нажатьклавиши Ctrl-PrtSc.
|
|
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!