Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы по СП (1-20) / 03 / ASM_03
.txt **********************************************************************
‘€‘’…ЊЌЋ… ЏђЋѓђЂЊЊ€ђЋ‚ЂЌ€…
**********************************************************************
*******************
*** ’Ґ¬ 03 ***
*******************
**********************************************************************
„‚Ћ€—Ќ›… Ђђ€”Њ…’€—…‘Љ€… ‚›—€‘‹…Ќ€џ - ‹€Ќ…‰Ќ›… ЏђЋѓђЂЊЊ›
**********************************************************************
–Ґ«м а Ў®вл:
Ќ ЇЁб вм п§лЄҐ бᥬЎ«Ґа Ё ўлЇ®«Ёвм «ЁҐ©го Їа®Ја ¬¬г
¤«п ўлзЁб«ҐЁп «ЈҐЎа ЁзҐбЄ®Ј® ўла ¦ҐЁп б ®¤®Ў ©в®ўл¬Ё Ё
¤ўгеЎ ©в®ўл¬Ё зЁб« ¬Ё
1. ‡ ¤ ЁҐ ЇаҐ¤ў аЁвҐ«мго Ї®¤Ј®в®ўЄг
Ћ§ Є®¬Ёвмбп б ᮤҐа¦ ЁҐ¬ агЄ®ў®¤бвў
€§гзЁвм ЇаЁўҐ¤Ґл© ⥮аҐвЁзҐбЄЁ© ¬ вҐаЁ «
‚лЇ®«Ёвм Їа ЄвЁзҐбЄго з бвм а Ў®вл
‘®бв ўЁвм ®взҐв ® а Ў®вҐ
ЏаҐ¤кпўЁвм १г«мв вл а Ў®вл ЇаҐЇ®¤ ў ⥫о
2. Ља вЄЁҐ ⥮аҐвЁзҐбЄЁҐ ᢥ¤ҐЁп
Ћб®ЎҐ®бвЁ б®бв ў«ҐЁп «ЁҐ©ле Їа®Ја ¬¬
Џа®Ја ¬¬Ёа®ў ЁҐ «ЁҐ©ле «Ј®аЁв¬®ў п§лЄҐ бᥬЎ«Ґа ®в®бЁвҐ«м®
Їа®бв®. •®вп Їа ЄвЁзҐбЄЁ Ї®«Ґ§лҐ Їа®Ја ¬¬л зЁбв® «ЁҐ©®Ј® вЁЇ Ґ¤ў
«Ё ўбваҐз овбп, «ЁҐ©лҐ гз бвЄЁ ©¤гвбп ў Є ¦¤®© Їа®Ја ¬¬Ґ.
2.1. ’ЁЇ®ў®Ґ ®Ўа ¬«ҐЁҐ Їа®Ја ¬¬
ЏаЁ а Ў®вҐ б Їа®Ја ¬¬ ¬Ё ЁбЇ®«м§говбп бЇҐжЁ «млҐ д ©«л ®Ўа ¬«ҐЁп, ᮤҐа¦ йЁҐ
ўбҐ Ґ®Ўе®¤Ё¬®Ґ ¤«п б®Їа殮Ёп ᮧ¤ ў Ґ¬®© Їа®Ја ¬¬л б бЁб⥬®© DOS. ‚ а §ле
б«гз пе Ї®«Ґ§л ҐбЄ®«мЄ® ®в«ЁзлҐ ўҐабЁЁ ®Ўа ¬«ҐЁп. „«п нв®© а Ў®вл Ё ¤«п
¬®ЈЁе ¤агЈЁе ЁбЇ®«м§гҐвбп ®Ўа ¬«ҐЁҐ, ᮮ⢥вбвўго饥 д ©«г EXE_FORM.ASM. ‚®в
ᮤҐа¦Ё¬®Ґ нв®Ј® д ©« б ҐЄ®в®ал¬Ё Ї®пᥨﬨ.
TITLE PROGNAME (EXE)
;----------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 32 DUP(?)
STACKSG ENDS
;----------------------------------------
DATASG SEGMENT PARA 'Data'
; ... |
; ... | §¤Ґбм ¤®«¦л Ўлвм ў иЁ ®ЇаҐ¤Ґ«ҐЁп ¤ ле
; ... |
UVAR DW (?) ; ўл室 п ЇҐаҐ¬Ґ п
ASCVAL DB ' ','$' ; и Ў«® ўлў®¤
EXIT DW (?) ; ўл室 Ї® «оЎ®© Є« ўЁиҐ
DATASG ENDS
;----------------------------------------
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
PUSH DS
XOR AX,AX ; § ЇЁбм ў б⥪
PUSH AX ; г«Ґў®Ј® ¤аҐб
MOV AX,DATASG ; § бл«Є ¤аҐб
MOV DS,AX ; DATASG ў ॣЁбва DS
LEA SI,ASCVAL
;----------------------------------------
; ... |
; ... | §¤Ґбм ¤®«¦л Ўлвм Є®¬ ¤л ў иЁе ўлзЁб«ҐЁ©
; ... |
MOV UVAR,AX ; § Ї®¬Ё ЁҐ १г«мв в
;----------------------------------------
; ўл§®ў Ї®¤Їа®Ја ¬¬л ўлў®¤ १г«мв в
;----------------------------------------
CALL SCRLIN ; ўл§®ў Ї®¤Їа®Ја ¬¬л
RET ; § ўҐа襨Ґ Їа®Ја ¬¬л
BEGIN ENDP
;
;****************************************
; |
; | Їа®ЇгйҐ п з бвм ®Ўа ¬«ҐЁп
; |
;****************************************
CODESG ENDS
END BEGIN
ЋЎа ¬«ҐЁҐ ᮤҐа¦Ёв:
1) ®ЇаҐ¤Ґ«ҐЁҐ ᥣ¬Ґв б⥪ , ®д®а¬«Ґ®Ґ ¤ЁаҐЄвЁў ¬Ё STACKSG SEGMENT Ё
STACKSG ENDS; б ¬ ᥣ¬Ґв б®бв®Ёв Ё§ 32-е б«®ў Ї ¬пвЁ, зв® § ¤ Ґвбп
¤ЁаҐЄвЁў®© DW 32 DUP(?).
2) ®ЇаҐ¤Ґ«ҐЁҐ ᥣ¬Ґв ¤ ле, ®д®а¬«Ґ®Ґ ¤ЁаҐЄвЁў ¬Ё DATASG SEGMENT Ё
DATASG ENDS;
3) ®ЇаҐ¤Ґ«ҐЁҐ ᥣ¬Ґв Є®¤ , ®д®а¬«Ґ®Ґ ¤ЁаҐЄвЁў ¬Ё CODESG SEGMENT Ё
CODESG ENDS.
‚ ®Ўа ¬«ҐЁЁ ᥣ¬Ґв Є®¤ гз бвўгов ¤ЁаҐЄвЁў
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
Ё ¤ўҐ ҐЎ®«миЁҐ ЈагЇЇл Є®¬ ¤. Ќ з «м п ЈагЇЇ ®ЎҐбЇҐзЁў Ґв б®Їа殮ЁҐ б DOS,
вॡ㥬®Ґ ¤«п Їа ўЁ«м®Ј® ўе®¤ ў Їа®Ја ¬¬г Ё ¤«п ў®§ўа в Ё§ ҐҐ ў DOS.
Ќ § 票Ґ ®в¤Ґ«мле Є®¬ ¤ ®Ўкп᥮ ў Є®¬¬Ґв аЁпе, е®вп ¤«п Ї®«®Ј®
Ї®Ё¬ Ёп б«Ґ¤гҐв ®Ўа вЁвмбп Є бЇа ў®з®© Ёд®а¬ жЁЁ Ї® Є®¬ ¤ ¬.
‡ нв®© ЈагЇЇ®© Є®¬ ¤ ®вв®зЁп¬Ё Ї®Є § ® ¬Ґбв®, Єг¤ 㦮 § ЇЁб вм Є®¬ ¤л,
ўлЇ®«пойЁҐ ¤Ґ©бвўЁп, ваҐЎгҐ¬лҐ ®в а §а Ў влў Ґ¬®© Їа®Ја ¬¬л.
‡ ⥬ Ё¤Ґв ®зҐм ҐЎ®«ми п ЈагЇЇ Є®¬ ¤, ®ЎҐбЇҐзЁў ой п § Ї®¬Ё ЁҐ
१г«мв в , § Є®в®а®© ЇҐаҐ¤ б ¬л¬ Є®ж®¬ Їа®Ја ¬¬®Ј® Є®¤ бв®Ёв Є®¬ ¤ RET,
Ґ®Ўе®¤Ё¬ п ¤«п Є®а४⮣® § ўҐаиҐЁп Їа®Ја ¬¬л Ё ¤«п ў®§ўа в ў DOS. Ќ® Ї®б«Ґ
ҐҐ §¤Ґбм ўлЇгйҐ ¤®ў®«м® Ў®«ми®© Єгб®Є Є®¤ - ⥪бв Ї®¤Їа®Ја ¬¬л,
®ЎҐбЇҐзЁў о饩 ўлў®¤ нЄа зЁб«®ў®Ј® १г«мв в ўлЇ®«ҐЁп Їа®Ја ¬¬л Ё
ҐЄ®в®алҐ ўбЇ®¬®Ј ⥫млҐ ¤Ґ©бвўЁп. Љ®Ґз®, ў б ¬®¬ ®Ўа ¬«ҐЁЁ ўбҐ нв® Ґбвм,
§¤Ґбм Їа®Їг饮 Ї®в®¬г, з⮠ᥩз б а §ЎЁа вмбп б нвЁ¬ ЇаҐ¦¤ҐўаҐ¬Ґ®.
„ «миҐ - ЇҐаҐ¤ б ¬л¬ Є®ж®¬ ᥣ¬Ґв бв®Ёв Є®¬ ¤ RET, ®ЎҐбЇҐзЁў ой п ў®§ўа в
Ё§ Ї®¤Їа®Ја ¬¬л ў ўл§ў ўиго ҐҐ Ј« ўго Їа®Ја ¬¬г.
ЌҐ®Ўе®¤Ё¬®бвм ®Ўа ¬«ҐЁп бўп§ б ⥬, зв® ¤«п Їа ўЁ«мле § ЇгбЄ Ё а Ў®вл
Їа®Ја ¬¬л ў DOS нв Їа®Ја ¬¬ ¤®«¦ Ё¬Ґвм, б в®зЄЁ §аҐЁп п§лЄ бᥬЎ«Ґа ,
ҐЎ®«ми®© Ў®а Є®¬ ¤ Ё ¤ЁаҐЄвЁў ў б ¬®¬ ҐҐ з «Ґ Ё ў б ¬®¬ Є®жҐ. Љ ¦¤л©
а § ЎЁа вм ®¤® Ё в® ¦Ґ ў ᮧ¤ ў Ґ¬®© Їа®Ја ¬¬Ґ ҐжҐ«Ґб®®Ўа §® Ё Є ⮬㠦Ґ
зॢ в® Ї®пў«ҐЁҐ¬ Їа®Ја ¬¬ле ®иЁЎ®Є. €¬Ґ® §¤Ґбм Ї®¬®Јгв вЁЇ®ўлҐ ®Ўа ¬«ҐЁп.
” ©« ®Ўа ¬«ҐЁп б«Ґ¤гҐв бЄ®ЇЁа®ў вм б Ё§¬ҐҐл¬ Ё¬ҐҐ¬ ᮮ⢥вб⢥®
ᮧ¤ ў Ґ¬®© Їа®Ја ¬¬Ґ Ё Є Є Ўл ¤®Ї®«Ёвм, ўбв ўЁў ў ®ЇаҐ¤Ґ«ҐлҐ ¬Ґбв
®Ўа ¬«ҐЁп ®ЇаҐ¤Ґ«ҐЁп ¤ ле (Є®бв в Ё ЇҐаҐ¬Ґле) Ё Їа®Ја ¬¬л© Є®¤.
Љ®Ґз®, ЇаЁ Ґ®Ўе®¤Ё¬®бвЁ ¬®¦® ўҐбвЁ Ё§¬ҐҐЁп ў б ¬® ®Ўа ¬«ҐЁҐ Ё ¤ ¦Ґ
ЇЁб вм б®Ўб⢥®Ґ ®Ўа ¬«ҐЁҐ Ї®¤ бў®Ё 㦤л, ® ¤Ґ« вм н⮠㦮 б
Ї®Ё¬ ЁҐ¬ ¤Ґ« .
2.2. ЏаЁ¬Ґа Їа®Ја ¬¬л ¤«п 16-ЎЁв®ўле ўлзЁб«ҐЁ© ¬ ⥬ вЁзҐбЄ®Ј® ўла ¦ҐЁп
Џа®Ја ¬¬лҐ ⥪бвл ўбв ў«Ґл ў ®Ўа ¬«ҐЁҐ - б Їа®ЇгбЄ®¬ ҐЈ® з бвЁ, ® 祬
Ўл«® бЄ § ® ЇаЁ ®ЇЁб ЁЁ ®Ўа ¬«ҐЁп.
TITLE ALGLIN (EXE) ; ўл§®ў Їа®Ја ¬¬л
;----------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 32 DUP(?)
STACKSG ENDS
;----------------------------------------
DATASG SEGMENT PARA 'Data'
; ¬Ґб⥠ваҐе ў®Їа®бЁвҐ«мле § Є®ў 㦮 гЄ § вм
; Є®ЄаҐвлҐ зЁб«®ўлҐ § 票п
UVAR DW (?) ; ЇҐаҐ¬Ґ п U - Ґ®ЇаҐ¤Ґ«Ґ п
XVAR DW ??? ; ЇҐаҐ¬Ґ п X
YVAR DW ??? ; ЇҐаҐ¬Ґ п Y
ZVAR DW ??? ; ЇҐаҐ¬Ґ п Z
ASCVAL DB ' ','$' ; и Ў«® ўлў®¤ бва®ЄЁ нЄа
DIVCON DW 2 ; Є®бв в -§ ¬Ґ ⥫м
AUX DW (?) ; ЇҐаҐ¬Ґ п ўбЇ®¬®Ј ⥫м п
AUX1 DW (?) ; - ¤«п 1-Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
AUX2 DW (?) ; - ¤«п 2-Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
EXIT DW (?) ; ўл室 Ї® «оЎ®© Є« ўЁиҐ
DATASG ENDS
;----------------------------------------
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
PUSH DS
XOR AX,AX ; § ЇЁб вм ў б⥪
PUSH AX ; г«Ґў®© ¤аҐб
MOV AX,DATASG ; Ї®¬ҐбвЁвм ¤аҐб
MOV DS,AX ; DATASG ў ॣЁбва DS
LEA SI,ASCVAL
;----------------------------------------
; Џа®Ја ¬¬ ўлзЁб«ҐЁп ўла ¦ҐЁп
;
; U = ((X + Y - Z)^3 - (X - Y + Z)^2 + (X + Y + Z))/2
;
; бЁ¬ў®« '^' ®§ з Ґв ў®§ўҐ¤ҐЁҐ ў б⥯Ґм
;----------------------------------------
; ўлзЁб«ҐЁҐ ЇҐаў®Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
;----------------------------------------
MOV AX,XVAR ; ўлзЁб«ҐЁҐ (X+Y-Z)
ADD AX,YVAR
SUB AX,ZVAR
MOV AUX,AX ; § Ї®¬Ё ЁҐ
; ўбЇ®¬®Ј ⥫쮩 ЇҐаҐ¬Ґ®©
IMUL AUX ; ў®§ўҐ¤ҐЁҐ ў Єў ¤а в
IMUL AUX ; ў®§ўҐ¤ҐЁҐ ў ЄгЎ
MOV AUX1,AX ;§ Ї®¬Ё ЁҐ ЇҐаў®Ј® б« Ј Ґ¬®Ј®
;----------------------------------------
; ўлзЁб«ҐЁҐ ўв®а®Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
;----------------------------------------
MOV AX,XVAR ; ўлзЁб«ҐЁҐ (X-Y+Z)
SUB AX,YVAR
ADD AX,ZVAR
MOV AUX,AX ; § Ї®¬Ё ЁҐ
; ўбЇ®¬®Ј ⥫쮩 ЇҐаҐ¬Ґ®©
IMUL AUX ; ў®§ўҐ¤ҐЁҐ ў Єў ¤а в
MOV AUX2,AX ; § Ї®¬Ё ЁҐ ўв®а®Ј® б« Ј Ґ¬®Ј®
;----------------------------------------
; ўлзЁб«ҐЁҐ ваҐвмЈ® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
;----------------------------------------
MOV AX,XVAR ; ўлзЁб«ҐЁҐ (X+Y+Z)
ADD AX,YVAR
ADD AX,ZVAR
;----------------------------------------
; ўлзЁб«ҐЁҐ зЁб«ЁвҐ«п Ё १г«мв в
;----------------------------------------
SUB AX,AUX2 ; ўлзЁв ЁҐ ўв®а®Ј® б« Ј Ґ¬®Ј® Ё§ ЇҐаў®Ј®
ADD AX,AUX1 ; ¤®Ў ў«ҐЁҐ ваҐв쥣® б« Ј Ґ¬®Ј®
CWD ; ЇаҐ®Ўа §®ў ЁҐ б«®ў
; ў ¤ў®©®Ґ б«®ў® - ¤«п ¤Ґ«Ё¬®Ј®
IDIV DIVCON ; ўлзЁб«ҐЁҐ १г«мв в ¤Ґ«ҐЁҐ¬ 2
MOV UVAR,AX ; § Ї®¬Ё ЁҐ १г«мв в ¤«п ўлў®¤
;----------------------------------------
; ўл§®ў Ї®¤Їа®Ја ¬¬л ўлў®¤ १г«мв в
;----------------------------------------
CALL SCRLIN ; ўл§®ў Ї®¤Їа®Ја ¬¬л
RET ; § ўҐа襨Ґ Їа®Ја ¬¬л
BEGIN ENDP
CODESG ENDS
END BEGIN
2.3. ЂбᥬЎ«Ёа®ў ЁҐ Ё Є®¬Ї®®ўЄ Їа®Ја ¬¬л
Џ® ®Є®з ЁЁ а Ў®вл б ⥪б⮬ Їа®Ја ¬¬л 㦮 Їа®¤Ґ« вм ¤ў и Ј
¤«п Ї®«гзҐЁп ЁбЇ®«пҐ¬®Ј® д ©« Їа®Ја ¬¬л: бᥬЎ«Ёа®ў вм Їа®Ја ¬¬г
Ё § ⥬ ўлЇ®«Ёвм ҐҐ Є®¬Ї®®ўЄг.
ЏҐаўл© и Ј ўЄ«оз Ґв ў ᥡп бᥬЎ«Ёа®ў ЁҐ Ёб室®Ј® ⥪бв Їа®Ја ¬¬л
ў ®ЎкҐЄвл© Є®¤ Ё ЈҐҐа жЁо OBJ-¬®¤г«п. „«п бᥬЎ«Ёа®ў Ёп Ёб室®©
Їа®Ја ¬¬л б«Ґ¤гҐв § ЇгбвЁвм Їа®Ја ¬¬г- бᥬЎ«Ґа б Ґ®Ўе®¤Ё¬л¬Ё Є«оз ¬Ё:
TASM.EXE /la /z /zi PROG.ASM
Ј¤Ґ PROG.ASM - гб«®ў®Ґ Ё¬п Ёб室®© Їа®Ја ¬¬л.
ќвЁ Є«озЁ ®§ з ов:
/la - а биЁаҐ п д®а¬ а бЇҐз вЄЁ Їа®Ја ¬¬л (ў д ©«Ґ PROG.LST);
/z - а бЇҐз влў ЁҐ Ёб室ле бва®Є ў¬Ґб⥠б б®®ЎйҐЁп¬Ё ®Ў ®иЁЎЄ е;
/zi - а бЇҐз влў ЁҐ Ї®«®© ®в« ¤®з®© Ёд®а¬ жЁЁ.
…б«Ё бᥬЎ«Ґа Ґ ®Ў аг¦Ёў Ґв ®иЁЎ®Є, в® ® ᮧ¤ Ґв ®ЎкҐЄвл© ¬®¤г«м.
”®а¬ в OBJ-¬®¤г«п 㦥 ЇаЁЎ«Ё¦Ґ Є ЁбЇ®«Ё¬®© д®а¬Ґ, ® ҐйҐ Ґ Ј®в®ў ¤«п
ўлЇ®«ҐЁп. ќв®в ¬®¤г«м ᮤҐа¦Ёв ¬ иЁл© Є®¤ ў иҐбв ¤ж вҐаЁз®© д®а¬Ґ,
Ґ ЇаЁбЇ®б®Ў«Ґл© ¤«п ўлЇ®«ҐЁп - Ї®бЄ®«мЄг бᥬЎ«Ґа ®Ўлз® Ґ ¬®¦Ґв
®ЇаҐ¤Ґ«Ёвм ўбҐ ¬ иЁлҐ ¤аҐб , в Є Є Є ЁбЇ®«Ё¬ п Їа®Ја ¬¬ ¬®¦Ґв
§ Јаг¦ вмбп ¤«п ўлЇ®«ҐЁп Ї®звЁ ў «оЎ®Ґ ¬Ґбв® ®ЇҐа вЁў®© Ї ¬пвЁ. Ља®¬Ґ
в®Ј®, ¤«п ®ЎкҐ¤ЁҐЁп б ®б®ў®© Їа®Ја ¬¬®© ¬®Јгв ЁбЇ®«м§®ў вмбп ¤агЈЁҐ
Їа®Ја ¬¬л Ё«Ё Ї®¤Їа®Ја ¬¬л. Љ®¬Ї®®ўйЁЄ § ўҐаи Ґв ®ЇаҐ¤Ґ«ҐЁҐ ¤аҐбле
ббл«®Є Ё, Ґб«Ё вॡгҐбп, ®ЎкҐ¤ЁпҐв ҐбЄ®«мЄЁе Їа®Ја ¬¬ ў ®¤Ё ЁбЇ®«пҐ¬л©
д ©«. Ј Є®¬Ї®®ўЄЁ § ўҐаи Ґв ЇаҐ®Ўа §®ў ЁҐ OBJ-¬®¤г«п ў ЁбЇ®«Ё¬л©
EXE-¬®¤г«м. „«п Є®¬Ї®®ўЄЁ Їа®Ја ¬¬л б«Ґ¤гҐв § ЇгбвЁвм Є®¬Ї®®ўйЁЄ б«Ґ¤гойЁ¬
®Ўа §®¬:
TLINK.EXE PROG.OBJ, PROG
Ј¤Ґ PROG.OBJ - Ё¬п OBJ-¬®¤г«п бᥬЎ«Ёа®ў ®© Їа®Ја ¬¬л, PROG - Ё¬п
ЁбЇ®«пҐ¬®© EXE-Їа®Ја ¬¬л (ЎҐ§ а биЁаҐЁп).
Џ®¤а®ЎҐҐ б Є«оз ¬Ё ®ЎҐЁе Їа®Ја ¬¬ ¬®¦® ®§ Є®¬Ёвмбп, § ЇгбвЁў TASM.EXE
Ё«Ё TLINK.EXE ЎҐ§ Ї а ¬Ґва®ў.
Џ®б«Ґ Є®¬Ї®®ўЄЁ OBJ-¬®¤г«п (Ё«Ё ¬®¤г«Ґ©) Ї®«гзҐл© ЁбЇ®«пҐ¬л©
EXE-¬®¤г«м ¬®¦® ўлЇ®«пвм «оЎ®Ґ зЁб«® а §.
€’ЂЉ:
1) ¤«п бᥬЎ«Ёа®ў Ёп Їа®Ја ¬¬л г¦ Є®¬ ¤ :
TASM.EXE /la /z /zi PROG.ASM
Ј¤Ґ PROG.ASM - гб«®ў®Ґ Ё¬п Ёб室®© Їа®Ја ¬¬л.
2) ¤«п Є®¬Ї®®ўЄЁ Їа®Ја ¬¬л г¦ Є®¬ ¤ :
TLINK.EXE PROG.OBJ, PROG-EXE
Ј¤Ґ PROG.OBJ - Ё¬п OBJ-¬®¤г«п бᥬЎ«Ёа®ў ®© Їа®Ја ¬¬л,
PROG-EXE - Ё¬п ЁбЇ®«Ё¬®© EXE-Їа®Ја ¬¬л (ЎҐ§ а биЁаҐЁп).
Џ®¤а®ЎҐҐ б ®ЇжЁп¬Ё ®ЎҐЁе Їа®Ја ¬¬ ¬®¦® ®§ Є®¬Ёвмбп, § ЇгбвЁў
TASM.EXE Ё«Ё TLINK.EXE ЎҐ§ Ї а ¬Ґва®ў.
3. ‘®¤Ґа¦ ЁҐ ®взҐв
1) ®¬Ґа Ё §ў ЁҐ а Ў®вл
2) 楫м а Ў®вл
3) Ё¤ЁўЁ¤г «м®Ґ § ¤ ЁҐ а Ў®вг
4) гЄ § ЁҐ Ё¬Ґ Ёб室®Ј® Ё ЁбЇ®«пҐ¬®Ј® д ©«®ў
5) ўлў®¤л
ЋвзҐв ЇаҐ¤бв ў«пҐвбп ў ўЁ¤Ґ ⥪бв®ў®Ј® д ©« , ўлЇ®«Ґ®Ј® ў д®а¬ ⥠DOS
(Є®¤®ў п бва Ёж 866). Љ ®взҐвг ¤®«¦л ЇаЁ« Ј вмбп д ©« Ёб室®Ј® Є®¤
Џа®Ја ¬¬л Ё а Ў®зЁ© ЁбЇ®«пҐ¬л© д ©«.
4. ‡ ¤ ЁҐ а Ў®вг
—Ђ‘’њ 1
1. ‘Є®ЇЁа®ў вм Ё§ гЄ § ®Ј® Є в «®Ј ⥪бв ®Ўа ¬«ҐЁп Їа®Ја ¬¬л
EXE_FORM.ASM, Ё§¬ҐЁў ҐЈ® Ё¬п Ї® гᬮв२о, ў бў®© а Ў®зЁ© Є в «®Ј.
2. ‚ўҐбвЁ ў нв®в ⥪бв г¦лҐ ¤®Ї®«ҐЁп б®Ј« б® ®¬Ґаг бў®ҐЈ®
ў аЁ в . ‚бв ў«пҐ¬ п з бвм Їа®Ја ¬¬л ¤®«¦ ўлЇ®«пвм ўлзЁб«ҐЁҐ
§ ¤ ®Ј® «ЈҐЎа ЁзҐбЄ®Ј® ўла ¦ҐЁп. ЏаЁ н⮬ ЇаҐ®Ўа §®ў ЁҐ ўла ¦ҐЁп
¤Ґ« вм Ґ 㦮. ‚ аЁ в ўлЎЁа Ґвбп ᮮ⢥вб⢥® бў®Ґ¬г ®¬Ґаг Ї®
бЇЁбЄг ў Є« бᮬ ¦га «Ґ.
3. ‚бв ўЁвм ў ⥪бв Їа®Ја ¬¬л § 票п г¦ле ЇҐаҐ¬Ґле Ї® б®Ўб⢥®¬г
ўлЎ®аг (® Ґ б«ЁиЄ®¬ ЇаЁ¬ЁвЁўлҐ). …б«Ё Їа®Ја ¬¬ ᮤҐа¦Ёв Є®¬ ¤л
¤Ґ«ҐЁп, б«Ґ¤гҐв Ї®¤®Ўа вм нвЁ § 票п в Є, зв®Ўл ¤Ґ«ҐЁҐ ¤ ў «®
楫®зЁб«Ґл© १г«мв в. Ќг¦® б«Ґ¤Ёвм, зв®Ўл ўбҐ Ёбе®¤лҐ Ё
Їа®¬Ґ¦гв®злҐ § зҐЁп Ґ ЇаҐўли «Ё ЇаҐ¤Ґ«®ў ®¤®Ў ©в®ўле зЁбҐ«.
4. ЂбᥬЎ«Ёа®ў вм Їа®Ја ¬¬г Ё гЎҐ¤Ёвмбп ў ®вбгвбвўЁЁ ®иЁЎ®Є.
5. ‘Є®¬Ї®®ў вм Їа®Ја ¬¬г.
6. ‚лЇ®«Ёвм Ї®«гзҐл© EXE-¬®¤г«м Ё Їа®ўҐаЁвм १г«мв в ўлзЁб«ҐЁ©.
‡ ЇЁб вм १г«мв в ўлзЁб«ҐЁ© ў ®взҐв.
—Ђ‘’њ 2
1. ‘Є®ЇЁа®ў вм ⥪бв бў®Ґ© ЇаҐ¤л¤г饩 Їа®Ја ¬¬л ў бў®© а Ў®зЁ© Є в «®Ј,
ᮮ⢥вб⢥® Ё§¬ҐЁў Ё¬п д ©« .
2. ‚ўҐбвЁ ў нв®в ⥪бв г¦лҐ ¤®Ї®«ҐЁп Ё Ё§¬ҐҐЁп.
3. ‚бв ўЁвм ў ⥪бв Їа®Ја ¬¬л § 票п г¦ле ЇҐаҐ¬Ґле Ї® б®Ўб⢥®¬г
ўлЎ®аг (® Ґ б«ЁиЄ®¬ ЇаЁ¬ЁвЁўлҐ). …б«Ё Їа®Ја ¬¬ ᮤҐа¦Ёв Є®¬ ¤л
¤Ґ«ҐЁп, б«Ґ¤гҐв Ї®¤®Ўа вм нвЁ § 票п в Є, зв®Ўл ¤Ґ«ҐЁҐ ¤ ў «®
楫®зЁб«Ґл© १г«мв в. Ќг¦® б«Ґ¤Ёвм, зв®Ўл ўбҐ Ёбе®¤лҐ Ё
Їа®¬Ґ¦гв®злҐ § зҐЁп Ґ ЇаҐўли «Ё ЇаҐ¤Ґ«®ў ¤ўгеЎ ©в®ўле зЁбҐ«.
4. ЂбᥬЎ«Ёа®ў вм Їа®Ја ¬¬г Ё гЎҐ¤Ёвмбп ў ®вбгвбвўЁЁ ®иЁЎ®Є.
5. ‘Є®¬Ї®®ў вм Їа®Ја ¬¬г.
6. ‚лЇ®«Ёвм Ї®«гзҐл© EXE-¬®¤г«м Ё Їа®ўҐаЁвм १г«мв в ўлзЁб«ҐЁ©.
‡ ЇЁб вм १г«мв в ўлзЁб«ҐЁ© ў ®взҐв.
’ҐЄбв Ё§¬ҐҐ®© Їа®Ја ¬¬л б®бв ў«пҐвбп ®б®ўҐ ⥪б⠯।л¤г饩
Їа®Ја ¬¬л б ¤®Ў ўЄ®© г¦ле Ё§¬ҐҐЁ©
1) ¤ЁаҐЄвЁўл ®ЇаҐ¤Ґ«ҐЁп Ў ©в , § ¤ ойЁҐ § зҐЁп ЇҐаҐ¬Ґле Ё Є®бв в,
§ ¬ҐЁвм ¤ЁаҐЄвЁў ¬Ё ®ЇаҐ¤Ґ«ҐЁп б«®ў ;
2) ЇҐаҐ¤ ¤Ґ«ҐЁҐ¬ ўбв ўЁвм Є®¬ ¤г ЇаҐ®Ўа §®ў Ёп б«®ў ў ¤ў®©®Ґ б«®ў® CWD;
3) Ї®бЄ®«мЄг १г«мвЁагой п ЇҐаҐ¬Ґ п Ґбвм ¤ўгеЎ ©в®ў®Ґ зЁб«®, ЁЄ ЄЁҐ ҐҐ
ЇаҐ®Ўа §®ў Ёп Ґ г¦л.
‚ ®б⠫쮬 ⥪бв Їа®Ја ¬¬л Ґ ®в«Ёз Ґвбп ®в ЇаҐ¦ҐЈ®.
5. ‚ аЁ вл § ¤ Ё©
01. U = (A * X^2 - B * X + C) / D
02. U = (A * X + B * X^2) + C * X / D
03. U = (X^3 + Y^2 + 1) / (X - 1)
04. U = (A * X - B * Y) + ( X / A + Y / B)
05. U = A * X^2 - (X * Y^2 ) / B
06. U = (X + Y)^2 / (X + 1)^2
07. U = (X - Y)^2 + (X + Y)^2 / (X - Y)
08. U = X * (X - 1) * (X + 2) / (X - 3)
09. U = ((A * X^2) + (A^2 * X) / 2
10. U = (X^3 - Y^3 ) + (X^2 - Y^2) + X / Y
11. U = (A * X^2 - B * Y^2) / (A * B)
12. U = (X - Y + Z) * (X + Y - Z) / (X + Y + Z)
13. U = (A * (X + 1)^2 ) / (X^2 + 1)
14. U = (X^2 - A)^3 + (X^2 + 1) / 2
15. U = (A * X^2 - B * X + C) * (A / (B + C))
16. U = A * (X * (Y - X)) / 2 + Y / 3
17. U = A^2 * (X^2 + X + 1) / (A * X)
18. U = (X + Y^2) + (Y - X) / (X + 2)
19. U = X * Y^2 + Y * X^2 - X * Y / (X + Y)
20. U = (X - Y) * (Y - X) * (X + Y) / 3
21. U = (X^2 * Y - 2) / (X + 2)
22. U = (A * X^2 + 1) / (A + X + 1)
23. U = ((X + Y^2) + (X - Y^2)) / 2
24. U = (A * X - B * Y) + ( A / B + X / Y)
25. U = A * (X + 1) + A * (X - 1)^2 / (A * X)
26. U = (X^2 + Y^2 + (X * Y) - 1) / 3
27. U = A * X^2 - B * X + C * Y^2 / D * Y
28. U = X * (Y - X) / 2 + Y * (X - Y) / 3
29. U = 2 * X * Y^2 + 3 * X / (4 * Y)
30. U = X^3 - X^2 * Y + X / (Y^3 - Y^2)
31. U = A * X^2 + B * X + C / (A + C)
32. U = (X * Y - 2) / (X + 2) + (X + Y) / (Y - 2)
**********************************************************************
**********************************************************************
‘€‘’…ЊЌЋ… ЏђЋѓђЂЊЊ€ђЋ‚ЂЌ€…
**********************************************************************
*******************
*** ’Ґ¬ 03 ***
*******************
**********************************************************************
„‚Ћ€—Ќ›… Ђђ€”Њ…’€—…‘Љ€… ‚›—€‘‹…Ќ€џ - ‹€Ќ…‰Ќ›… ЏђЋѓђЂЊЊ›
**********************************************************************
–Ґ«м а Ў®вл:
Ќ ЇЁб вм п§лЄҐ бᥬЎ«Ґа Ё ўлЇ®«Ёвм «ЁҐ©го Їа®Ја ¬¬г
¤«п ўлзЁб«ҐЁп «ЈҐЎа ЁзҐбЄ®Ј® ўла ¦ҐЁп б ®¤®Ў ©в®ўл¬Ё Ё
¤ўгеЎ ©в®ўл¬Ё зЁб« ¬Ё
1. ‡ ¤ ЁҐ ЇаҐ¤ў аЁвҐ«мго Ї®¤Ј®в®ўЄг
Ћ§ Є®¬Ёвмбп б ᮤҐа¦ ЁҐ¬ агЄ®ў®¤бвў
€§гзЁвм ЇаЁўҐ¤Ґл© ⥮аҐвЁзҐбЄЁ© ¬ вҐаЁ «
‚лЇ®«Ёвм Їа ЄвЁзҐбЄго з бвм а Ў®вл
‘®бв ўЁвм ®взҐв ® а Ў®вҐ
ЏаҐ¤кпўЁвм १г«мв вл а Ў®вл ЇаҐЇ®¤ ў ⥫о
2. Ља вЄЁҐ ⥮аҐвЁзҐбЄЁҐ ᢥ¤ҐЁп
Ћб®ЎҐ®бвЁ б®бв ў«ҐЁп «ЁҐ©ле Їа®Ја ¬¬
Џа®Ја ¬¬Ёа®ў ЁҐ «ЁҐ©ле «Ј®аЁв¬®ў п§лЄҐ бᥬЎ«Ґа ®в®бЁвҐ«м®
Їа®бв®. •®вп Їа ЄвЁзҐбЄЁ Ї®«Ґ§лҐ Їа®Ја ¬¬л зЁбв® «ЁҐ©®Ј® вЁЇ Ґ¤ў
«Ё ўбваҐз овбп, «ЁҐ©лҐ гз бвЄЁ ©¤гвбп ў Є ¦¤®© Їа®Ја ¬¬Ґ.
2.1. ’ЁЇ®ў®Ґ ®Ўа ¬«ҐЁҐ Їа®Ја ¬¬
ЏаЁ а Ў®вҐ б Їа®Ја ¬¬ ¬Ё ЁбЇ®«м§говбп бЇҐжЁ «млҐ д ©«л ®Ўа ¬«ҐЁп, ᮤҐа¦ йЁҐ
ўбҐ Ґ®Ўе®¤Ё¬®Ґ ¤«п б®Їа殮Ёп ᮧ¤ ў Ґ¬®© Їа®Ја ¬¬л б бЁб⥬®© DOS. ‚ а §ле
б«гз пе Ї®«Ґ§л ҐбЄ®«мЄ® ®в«ЁзлҐ ўҐабЁЁ ®Ўа ¬«ҐЁп. „«п нв®© а Ў®вл Ё ¤«п
¬®ЈЁе ¤агЈЁе ЁбЇ®«м§гҐвбп ®Ўа ¬«ҐЁҐ, ᮮ⢥вбвўго饥 д ©«г EXE_FORM.ASM. ‚®в
ᮤҐа¦Ё¬®Ґ нв®Ј® д ©« б ҐЄ®в®ал¬Ё Ї®пᥨﬨ.
TITLE PROGNAME (EXE)
;----------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 32 DUP(?)
STACKSG ENDS
;----------------------------------------
DATASG SEGMENT PARA 'Data'
; ... |
; ... | §¤Ґбм ¤®«¦л Ўлвм ў иЁ ®ЇаҐ¤Ґ«ҐЁп ¤ ле
; ... |
UVAR DW (?) ; ўл室 п ЇҐаҐ¬Ґ п
ASCVAL DB ' ','$' ; и Ў«® ўлў®¤
EXIT DW (?) ; ўл室 Ї® «оЎ®© Є« ўЁиҐ
DATASG ENDS
;----------------------------------------
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
PUSH DS
XOR AX,AX ; § ЇЁбм ў б⥪
PUSH AX ; г«Ґў®Ј® ¤аҐб
MOV AX,DATASG ; § бл«Є ¤аҐб
MOV DS,AX ; DATASG ў ॣЁбва DS
LEA SI,ASCVAL
;----------------------------------------
; ... |
; ... | §¤Ґбм ¤®«¦л Ўлвм Є®¬ ¤л ў иЁе ўлзЁб«ҐЁ©
; ... |
MOV UVAR,AX ; § Ї®¬Ё ЁҐ १г«мв в
;----------------------------------------
; ўл§®ў Ї®¤Їа®Ја ¬¬л ўлў®¤ १г«мв в
;----------------------------------------
CALL SCRLIN ; ўл§®ў Ї®¤Їа®Ја ¬¬л
RET ; § ўҐа襨Ґ Їа®Ја ¬¬л
BEGIN ENDP
;
;****************************************
; |
; | Їа®ЇгйҐ п з бвм ®Ўа ¬«ҐЁп
; |
;****************************************
CODESG ENDS
END BEGIN
ЋЎа ¬«ҐЁҐ ᮤҐа¦Ёв:
1) ®ЇаҐ¤Ґ«ҐЁҐ ᥣ¬Ґв б⥪ , ®д®а¬«Ґ®Ґ ¤ЁаҐЄвЁў ¬Ё STACKSG SEGMENT Ё
STACKSG ENDS; б ¬ ᥣ¬Ґв б®бв®Ёв Ё§ 32-е б«®ў Ї ¬пвЁ, зв® § ¤ Ґвбп
¤ЁаҐЄвЁў®© DW 32 DUP(?).
2) ®ЇаҐ¤Ґ«ҐЁҐ ᥣ¬Ґв ¤ ле, ®д®а¬«Ґ®Ґ ¤ЁаҐЄвЁў ¬Ё DATASG SEGMENT Ё
DATASG ENDS;
3) ®ЇаҐ¤Ґ«ҐЁҐ ᥣ¬Ґв Є®¤ , ®д®а¬«Ґ®Ґ ¤ЁаҐЄвЁў ¬Ё CODESG SEGMENT Ё
CODESG ENDS.
‚ ®Ўа ¬«ҐЁЁ ᥣ¬Ґв Є®¤ гз бвўгов ¤ЁаҐЄвЁў
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
Ё ¤ўҐ ҐЎ®«миЁҐ ЈагЇЇл Є®¬ ¤. Ќ з «м п ЈагЇЇ ®ЎҐбЇҐзЁў Ґв б®Їа殮ЁҐ б DOS,
вॡ㥬®Ґ ¤«п Їа ўЁ«м®Ј® ўе®¤ ў Їа®Ја ¬¬г Ё ¤«п ў®§ўа в Ё§ ҐҐ ў DOS.
Ќ § 票Ґ ®в¤Ґ«мле Є®¬ ¤ ®Ўкп᥮ ў Є®¬¬Ґв аЁпе, е®вп ¤«п Ї®«®Ј®
Ї®Ё¬ Ёп б«Ґ¤гҐв ®Ўа вЁвмбп Є бЇа ў®з®© Ёд®а¬ жЁЁ Ї® Є®¬ ¤ ¬.
‡ нв®© ЈагЇЇ®© Є®¬ ¤ ®вв®зЁп¬Ё Ї®Є § ® ¬Ґбв®, Єг¤ 㦮 § ЇЁб вм Є®¬ ¤л,
ўлЇ®«пойЁҐ ¤Ґ©бвўЁп, ваҐЎгҐ¬лҐ ®в а §а Ў влў Ґ¬®© Їа®Ја ¬¬л.
‡ ⥬ Ё¤Ґв ®зҐм ҐЎ®«ми п ЈагЇЇ Є®¬ ¤, ®ЎҐбЇҐзЁў ой п § Ї®¬Ё ЁҐ
१г«мв в , § Є®в®а®© ЇҐаҐ¤ б ¬л¬ Є®ж®¬ Їа®Ја ¬¬®Ј® Є®¤ бв®Ёв Є®¬ ¤ RET,
Ґ®Ўе®¤Ё¬ п ¤«п Є®а४⮣® § ўҐаиҐЁп Їа®Ја ¬¬л Ё ¤«п ў®§ўа в ў DOS. Ќ® Ї®б«Ґ
ҐҐ §¤Ґбм ўлЇгйҐ ¤®ў®«м® Ў®«ми®© Єгб®Є Є®¤ - ⥪бв Ї®¤Їа®Ја ¬¬л,
®ЎҐбЇҐзЁў о饩 ўлў®¤ нЄа зЁб«®ў®Ј® १г«мв в ўлЇ®«ҐЁп Їа®Ја ¬¬л Ё
ҐЄ®в®алҐ ўбЇ®¬®Ј ⥫млҐ ¤Ґ©бвўЁп. Љ®Ґз®, ў б ¬®¬ ®Ўа ¬«ҐЁЁ ўбҐ нв® Ґбвм,
§¤Ґбм Їа®Їг饮 Ї®в®¬г, з⮠ᥩз б а §ЎЁа вмбп б нвЁ¬ ЇаҐ¦¤ҐўаҐ¬Ґ®.
„ «миҐ - ЇҐаҐ¤ б ¬л¬ Є®ж®¬ ᥣ¬Ґв бв®Ёв Є®¬ ¤ RET, ®ЎҐбЇҐзЁў ой п ў®§ўа в
Ё§ Ї®¤Їа®Ја ¬¬л ў ўл§ў ўиго ҐҐ Ј« ўго Їа®Ја ¬¬г.
ЌҐ®Ўе®¤Ё¬®бвм ®Ўа ¬«ҐЁп бўп§ б ⥬, зв® ¤«п Їа ўЁ«мле § ЇгбЄ Ё а Ў®вл
Їа®Ја ¬¬л ў DOS нв Їа®Ја ¬¬ ¤®«¦ Ё¬Ґвм, б в®зЄЁ §аҐЁп п§лЄ бᥬЎ«Ґа ,
ҐЎ®«ми®© Ў®а Є®¬ ¤ Ё ¤ЁаҐЄвЁў ў б ¬®¬ ҐҐ з «Ґ Ё ў б ¬®¬ Є®жҐ. Љ ¦¤л©
а § ЎЁа вм ®¤® Ё в® ¦Ґ ў ᮧ¤ ў Ґ¬®© Їа®Ја ¬¬Ґ ҐжҐ«Ґб®®Ўа §® Ё Є ⮬㠦Ґ
зॢ в® Ї®пў«ҐЁҐ¬ Їа®Ја ¬¬ле ®иЁЎ®Є. €¬Ґ® §¤Ґбм Ї®¬®Јгв вЁЇ®ўлҐ ®Ўа ¬«ҐЁп.
” ©« ®Ўа ¬«ҐЁп б«Ґ¤гҐв бЄ®ЇЁа®ў вм б Ё§¬ҐҐл¬ Ё¬ҐҐ¬ ᮮ⢥вб⢥®
ᮧ¤ ў Ґ¬®© Їа®Ја ¬¬Ґ Ё Є Є Ўл ¤®Ї®«Ёвм, ўбв ўЁў ў ®ЇаҐ¤Ґ«ҐлҐ ¬Ґбв
®Ўа ¬«ҐЁп ®ЇаҐ¤Ґ«ҐЁп ¤ ле (Є®бв в Ё ЇҐаҐ¬Ґле) Ё Їа®Ја ¬¬л© Є®¤.
Љ®Ґз®, ЇаЁ Ґ®Ўе®¤Ё¬®бвЁ ¬®¦® ўҐбвЁ Ё§¬ҐҐЁп ў б ¬® ®Ўа ¬«ҐЁҐ Ё ¤ ¦Ґ
ЇЁб вм б®Ўб⢥®Ґ ®Ўа ¬«ҐЁҐ Ї®¤ бў®Ё 㦤л, ® ¤Ґ« вм н⮠㦮 б
Ї®Ё¬ ЁҐ¬ ¤Ґ« .
2.2. ЏаЁ¬Ґа Їа®Ја ¬¬л ¤«п 16-ЎЁв®ўле ўлзЁб«ҐЁ© ¬ ⥬ вЁзҐбЄ®Ј® ўла ¦ҐЁп
Џа®Ја ¬¬лҐ ⥪бвл ўбв ў«Ґл ў ®Ўа ¬«ҐЁҐ - б Їа®ЇгбЄ®¬ ҐЈ® з бвЁ, ® 祬
Ўл«® бЄ § ® ЇаЁ ®ЇЁб ЁЁ ®Ўа ¬«ҐЁп.
TITLE ALGLIN (EXE) ; ўл§®ў Їа®Ја ¬¬л
;----------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 32 DUP(?)
STACKSG ENDS
;----------------------------------------
DATASG SEGMENT PARA 'Data'
; ¬Ґб⥠ваҐе ў®Їа®бЁвҐ«мле § Є®ў 㦮 гЄ § вм
; Є®ЄаҐвлҐ зЁб«®ўлҐ § 票п
UVAR DW (?) ; ЇҐаҐ¬Ґ п U - Ґ®ЇаҐ¤Ґ«Ґ п
XVAR DW ??? ; ЇҐаҐ¬Ґ п X
YVAR DW ??? ; ЇҐаҐ¬Ґ п Y
ZVAR DW ??? ; ЇҐаҐ¬Ґ п Z
ASCVAL DB ' ','$' ; и Ў«® ўлў®¤ бва®ЄЁ нЄа
DIVCON DW 2 ; Є®бв в -§ ¬Ґ ⥫м
AUX DW (?) ; ЇҐаҐ¬Ґ п ўбЇ®¬®Ј ⥫м п
AUX1 DW (?) ; - ¤«п 1-Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
AUX2 DW (?) ; - ¤«п 2-Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
EXIT DW (?) ; ўл室 Ї® «оЎ®© Є« ўЁиҐ
DATASG ENDS
;----------------------------------------
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
PUSH DS
XOR AX,AX ; § ЇЁб вм ў б⥪
PUSH AX ; г«Ґў®© ¤аҐб
MOV AX,DATASG ; Ї®¬ҐбвЁвм ¤аҐб
MOV DS,AX ; DATASG ў ॣЁбва DS
LEA SI,ASCVAL
;----------------------------------------
; Џа®Ја ¬¬ ўлзЁб«ҐЁп ўла ¦ҐЁп
;
; U = ((X + Y - Z)^3 - (X - Y + Z)^2 + (X + Y + Z))/2
;
; бЁ¬ў®« '^' ®§ з Ґв ў®§ўҐ¤ҐЁҐ ў б⥯Ґм
;----------------------------------------
; ўлзЁб«ҐЁҐ ЇҐаў®Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
;----------------------------------------
MOV AX,XVAR ; ўлзЁб«ҐЁҐ (X+Y-Z)
ADD AX,YVAR
SUB AX,ZVAR
MOV AUX,AX ; § Ї®¬Ё ЁҐ
; ўбЇ®¬®Ј ⥫쮩 ЇҐаҐ¬Ґ®©
IMUL AUX ; ў®§ўҐ¤ҐЁҐ ў Єў ¤а в
IMUL AUX ; ў®§ўҐ¤ҐЁҐ ў ЄгЎ
MOV AUX1,AX ;§ Ї®¬Ё ЁҐ ЇҐаў®Ј® б« Ј Ґ¬®Ј®
;----------------------------------------
; ўлзЁб«ҐЁҐ ўв®а®Ј® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
;----------------------------------------
MOV AX,XVAR ; ўлзЁб«ҐЁҐ (X-Y+Z)
SUB AX,YVAR
ADD AX,ZVAR
MOV AUX,AX ; § Ї®¬Ё ЁҐ
; ўбЇ®¬®Ј ⥫쮩 ЇҐаҐ¬Ґ®©
IMUL AUX ; ў®§ўҐ¤ҐЁҐ ў Єў ¤а в
MOV AUX2,AX ; § Ї®¬Ё ЁҐ ўв®а®Ј® б« Ј Ґ¬®Ј®
;----------------------------------------
; ўлзЁб«ҐЁҐ ваҐвмЈ® б« Ј Ґ¬®Ј® зЁб«ЁвҐ«п
;----------------------------------------
MOV AX,XVAR ; ўлзЁб«ҐЁҐ (X+Y+Z)
ADD AX,YVAR
ADD AX,ZVAR
;----------------------------------------
; ўлзЁб«ҐЁҐ зЁб«ЁвҐ«п Ё १г«мв в
;----------------------------------------
SUB AX,AUX2 ; ўлзЁв ЁҐ ўв®а®Ј® б« Ј Ґ¬®Ј® Ё§ ЇҐаў®Ј®
ADD AX,AUX1 ; ¤®Ў ў«ҐЁҐ ваҐв쥣® б« Ј Ґ¬®Ј®
CWD ; ЇаҐ®Ўа §®ў ЁҐ б«®ў
; ў ¤ў®©®Ґ б«®ў® - ¤«п ¤Ґ«Ё¬®Ј®
IDIV DIVCON ; ўлзЁб«ҐЁҐ १г«мв в ¤Ґ«ҐЁҐ¬ 2
MOV UVAR,AX ; § Ї®¬Ё ЁҐ १г«мв в ¤«п ўлў®¤
;----------------------------------------
; ўл§®ў Ї®¤Їа®Ја ¬¬л ўлў®¤ १г«мв в
;----------------------------------------
CALL SCRLIN ; ўл§®ў Ї®¤Їа®Ја ¬¬л
RET ; § ўҐа襨Ґ Їа®Ја ¬¬л
BEGIN ENDP
CODESG ENDS
END BEGIN
2.3. ЂбᥬЎ«Ёа®ў ЁҐ Ё Є®¬Ї®®ўЄ Їа®Ја ¬¬л
Џ® ®Є®з ЁЁ а Ў®вл б ⥪б⮬ Їа®Ја ¬¬л 㦮 Їа®¤Ґ« вм ¤ў и Ј
¤«п Ї®«гзҐЁп ЁбЇ®«пҐ¬®Ј® д ©« Їа®Ја ¬¬л: бᥬЎ«Ёа®ў вм Їа®Ја ¬¬г
Ё § ⥬ ўлЇ®«Ёвм ҐҐ Є®¬Ї®®ўЄг.
ЏҐаўл© и Ј ўЄ«оз Ґв ў ᥡп бᥬЎ«Ёа®ў ЁҐ Ёб室®Ј® ⥪бв Їа®Ја ¬¬л
ў ®ЎкҐЄвл© Є®¤ Ё ЈҐҐа жЁо OBJ-¬®¤г«п. „«п бᥬЎ«Ёа®ў Ёп Ёб室®©
Їа®Ја ¬¬л б«Ґ¤гҐв § ЇгбвЁвм Їа®Ја ¬¬г- бᥬЎ«Ґа б Ґ®Ўе®¤Ё¬л¬Ё Є«оз ¬Ё:
TASM.EXE /la /z /zi PROG.ASM
Ј¤Ґ PROG.ASM - гб«®ў®Ґ Ё¬п Ёб室®© Їа®Ја ¬¬л.
ќвЁ Є«озЁ ®§ з ов:
/la - а биЁаҐ п д®а¬ а бЇҐз вЄЁ Їа®Ја ¬¬л (ў д ©«Ґ PROG.LST);
/z - а бЇҐз влў ЁҐ Ёб室ле бва®Є ў¬Ґб⥠б б®®ЎйҐЁп¬Ё ®Ў ®иЁЎЄ е;
/zi - а бЇҐз влў ЁҐ Ї®«®© ®в« ¤®з®© Ёд®а¬ жЁЁ.
…б«Ё бᥬЎ«Ґа Ґ ®Ў аг¦Ёў Ґв ®иЁЎ®Є, в® ® ᮧ¤ Ґв ®ЎкҐЄвл© ¬®¤г«м.
”®а¬ в OBJ-¬®¤г«п 㦥 ЇаЁЎ«Ё¦Ґ Є ЁбЇ®«Ё¬®© д®а¬Ґ, ® ҐйҐ Ґ Ј®в®ў ¤«п
ўлЇ®«ҐЁп. ќв®в ¬®¤г«м ᮤҐа¦Ёв ¬ иЁл© Є®¤ ў иҐбв ¤ж вҐаЁз®© д®а¬Ґ,
Ґ ЇаЁбЇ®б®Ў«Ґл© ¤«п ўлЇ®«ҐЁп - Ї®бЄ®«мЄг бᥬЎ«Ґа ®Ўлз® Ґ ¬®¦Ґв
®ЇаҐ¤Ґ«Ёвм ўбҐ ¬ иЁлҐ ¤аҐб , в Є Є Є ЁбЇ®«Ё¬ п Їа®Ја ¬¬ ¬®¦Ґв
§ Јаг¦ вмбп ¤«п ўлЇ®«ҐЁп Ї®звЁ ў «оЎ®Ґ ¬Ґбв® ®ЇҐа вЁў®© Ї ¬пвЁ. Ља®¬Ґ
в®Ј®, ¤«п ®ЎкҐ¤ЁҐЁп б ®б®ў®© Їа®Ја ¬¬®© ¬®Јгв ЁбЇ®«м§®ў вмбп ¤агЈЁҐ
Їа®Ја ¬¬л Ё«Ё Ї®¤Їа®Ја ¬¬л. Љ®¬Ї®®ўйЁЄ § ўҐаи Ґв ®ЇаҐ¤Ґ«ҐЁҐ ¤аҐбле
ббл«®Є Ё, Ґб«Ё вॡгҐбп, ®ЎкҐ¤ЁпҐв ҐбЄ®«мЄЁе Їа®Ја ¬¬ ў ®¤Ё ЁбЇ®«пҐ¬л©
д ©«. Ј Є®¬Ї®®ўЄЁ § ўҐаи Ґв ЇаҐ®Ўа §®ў ЁҐ OBJ-¬®¤г«п ў ЁбЇ®«Ё¬л©
EXE-¬®¤г«м. „«п Є®¬Ї®®ўЄЁ Їа®Ја ¬¬л б«Ґ¤гҐв § ЇгбвЁвм Є®¬Ї®®ўйЁЄ б«Ґ¤гойЁ¬
®Ўа §®¬:
TLINK.EXE PROG.OBJ, PROG
Ј¤Ґ PROG.OBJ - Ё¬п OBJ-¬®¤г«п бᥬЎ«Ёа®ў ®© Їа®Ја ¬¬л, PROG - Ё¬п
ЁбЇ®«пҐ¬®© EXE-Їа®Ја ¬¬л (ЎҐ§ а биЁаҐЁп).
Џ®¤а®ЎҐҐ б Є«оз ¬Ё ®ЎҐЁе Їа®Ја ¬¬ ¬®¦® ®§ Є®¬Ёвмбп, § ЇгбвЁў TASM.EXE
Ё«Ё TLINK.EXE ЎҐ§ Ї а ¬Ґва®ў.
Џ®б«Ґ Є®¬Ї®®ўЄЁ OBJ-¬®¤г«п (Ё«Ё ¬®¤г«Ґ©) Ї®«гзҐл© ЁбЇ®«пҐ¬л©
EXE-¬®¤г«м ¬®¦® ўлЇ®«пвм «оЎ®Ґ зЁб«® а §.
€’ЂЉ:
1) ¤«п бᥬЎ«Ёа®ў Ёп Їа®Ја ¬¬л г¦ Є®¬ ¤ :
TASM.EXE /la /z /zi PROG.ASM
Ј¤Ґ PROG.ASM - гб«®ў®Ґ Ё¬п Ёб室®© Їа®Ја ¬¬л.
2) ¤«п Є®¬Ї®®ўЄЁ Їа®Ја ¬¬л г¦ Є®¬ ¤ :
TLINK.EXE PROG.OBJ, PROG-EXE
Ј¤Ґ PROG.OBJ - Ё¬п OBJ-¬®¤г«п бᥬЎ«Ёа®ў ®© Їа®Ја ¬¬л,
PROG-EXE - Ё¬п ЁбЇ®«Ё¬®© EXE-Їа®Ја ¬¬л (ЎҐ§ а биЁаҐЁп).
Џ®¤а®ЎҐҐ б ®ЇжЁп¬Ё ®ЎҐЁе Їа®Ја ¬¬ ¬®¦® ®§ Є®¬Ёвмбп, § ЇгбвЁў
TASM.EXE Ё«Ё TLINK.EXE ЎҐ§ Ї а ¬Ґва®ў.
3. ‘®¤Ґа¦ ЁҐ ®взҐв
1) ®¬Ґа Ё §ў ЁҐ а Ў®вл
2) 楫м а Ў®вл
3) Ё¤ЁўЁ¤г «м®Ґ § ¤ ЁҐ а Ў®вг
4) гЄ § ЁҐ Ё¬Ґ Ёб室®Ј® Ё ЁбЇ®«пҐ¬®Ј® д ©«®ў
5) ўлў®¤л
ЋвзҐв ЇаҐ¤бв ў«пҐвбп ў ўЁ¤Ґ ⥪бв®ў®Ј® д ©« , ўлЇ®«Ґ®Ј® ў д®а¬ ⥠DOS
(Є®¤®ў п бва Ёж 866). Љ ®взҐвг ¤®«¦л ЇаЁ« Ј вмбп д ©« Ёб室®Ј® Є®¤
Џа®Ја ¬¬л Ё а Ў®зЁ© ЁбЇ®«пҐ¬л© д ©«.
4. ‡ ¤ ЁҐ а Ў®вг
—Ђ‘’њ 1
1. ‘Є®ЇЁа®ў вм Ё§ гЄ § ®Ј® Є в «®Ј ⥪бв ®Ўа ¬«ҐЁп Їа®Ја ¬¬л
EXE_FORM.ASM, Ё§¬ҐЁў ҐЈ® Ё¬п Ї® гᬮв२о, ў бў®© а Ў®зЁ© Є в «®Ј.
2. ‚ўҐбвЁ ў нв®в ⥪бв г¦лҐ ¤®Ї®«ҐЁп б®Ј« б® ®¬Ґаг бў®ҐЈ®
ў аЁ в . ‚бв ў«пҐ¬ п з бвм Їа®Ја ¬¬л ¤®«¦ ўлЇ®«пвм ўлзЁб«ҐЁҐ
§ ¤ ®Ј® «ЈҐЎа ЁзҐбЄ®Ј® ўла ¦ҐЁп. ЏаЁ н⮬ ЇаҐ®Ўа §®ў ЁҐ ўла ¦ҐЁп
¤Ґ« вм Ґ 㦮. ‚ аЁ в ўлЎЁа Ґвбп ᮮ⢥вб⢥® бў®Ґ¬г ®¬Ґаг Ї®
бЇЁбЄг ў Є« бᮬ ¦га «Ґ.
3. ‚бв ўЁвм ў ⥪бв Їа®Ја ¬¬л § 票п г¦ле ЇҐаҐ¬Ґле Ї® б®Ўб⢥®¬г
ўлЎ®аг (® Ґ б«ЁиЄ®¬ ЇаЁ¬ЁвЁўлҐ). …б«Ё Їа®Ја ¬¬ ᮤҐа¦Ёв Є®¬ ¤л
¤Ґ«ҐЁп, б«Ґ¤гҐв Ї®¤®Ўа вм нвЁ § 票п в Є, зв®Ўл ¤Ґ«ҐЁҐ ¤ ў «®
楫®зЁб«Ґл© १г«мв в. Ќг¦® б«Ґ¤Ёвм, зв®Ўл ўбҐ Ёбе®¤лҐ Ё
Їа®¬Ґ¦гв®злҐ § зҐЁп Ґ ЇаҐўли «Ё ЇаҐ¤Ґ«®ў ®¤®Ў ©в®ўле зЁбҐ«.
4. ЂбᥬЎ«Ёа®ў вм Їа®Ја ¬¬г Ё гЎҐ¤Ёвмбп ў ®вбгвбвўЁЁ ®иЁЎ®Є.
5. ‘Є®¬Ї®®ў вм Їа®Ја ¬¬г.
6. ‚лЇ®«Ёвм Ї®«гзҐл© EXE-¬®¤г«м Ё Їа®ўҐаЁвм १г«мв в ўлзЁб«ҐЁ©.
‡ ЇЁб вм १г«мв в ўлзЁб«ҐЁ© ў ®взҐв.
—Ђ‘’њ 2
1. ‘Є®ЇЁа®ў вм ⥪бв бў®Ґ© ЇаҐ¤л¤г饩 Їа®Ја ¬¬л ў бў®© а Ў®зЁ© Є в «®Ј,
ᮮ⢥вб⢥® Ё§¬ҐЁў Ё¬п д ©« .
2. ‚ўҐбвЁ ў нв®в ⥪бв г¦лҐ ¤®Ї®«ҐЁп Ё Ё§¬ҐҐЁп.
3. ‚бв ўЁвм ў ⥪бв Їа®Ја ¬¬л § 票п г¦ле ЇҐаҐ¬Ґле Ї® б®Ўб⢥®¬г
ўлЎ®аг (® Ґ б«ЁиЄ®¬ ЇаЁ¬ЁвЁўлҐ). …б«Ё Їа®Ја ¬¬ ᮤҐа¦Ёв Є®¬ ¤л
¤Ґ«ҐЁп, б«Ґ¤гҐв Ї®¤®Ўа вм нвЁ § 票п в Є, зв®Ўл ¤Ґ«ҐЁҐ ¤ ў «®
楫®зЁб«Ґл© १г«мв в. Ќг¦® б«Ґ¤Ёвм, зв®Ўл ўбҐ Ёбе®¤лҐ Ё
Їа®¬Ґ¦гв®злҐ § зҐЁп Ґ ЇаҐўли «Ё ЇаҐ¤Ґ«®ў ¤ўгеЎ ©в®ўле зЁбҐ«.
4. ЂбᥬЎ«Ёа®ў вм Їа®Ја ¬¬г Ё гЎҐ¤Ёвмбп ў ®вбгвбвўЁЁ ®иЁЎ®Є.
5. ‘Є®¬Ї®®ў вм Їа®Ја ¬¬г.
6. ‚лЇ®«Ёвм Ї®«гзҐл© EXE-¬®¤г«м Ё Їа®ўҐаЁвм १г«мв в ўлзЁб«ҐЁ©.
‡ ЇЁб вм १г«мв в ўлзЁб«ҐЁ© ў ®взҐв.
’ҐЄбв Ё§¬ҐҐ®© Їа®Ја ¬¬л б®бв ў«пҐвбп ®б®ўҐ ⥪б⠯।л¤г饩
Їа®Ја ¬¬л б ¤®Ў ўЄ®© г¦ле Ё§¬ҐҐЁ©
1) ¤ЁаҐЄвЁўл ®ЇаҐ¤Ґ«ҐЁп Ў ©в , § ¤ ойЁҐ § зҐЁп ЇҐаҐ¬Ґле Ё Є®бв в,
§ ¬ҐЁвм ¤ЁаҐЄвЁў ¬Ё ®ЇаҐ¤Ґ«ҐЁп б«®ў ;
2) ЇҐаҐ¤ ¤Ґ«ҐЁҐ¬ ўбв ўЁвм Є®¬ ¤г ЇаҐ®Ўа §®ў Ёп б«®ў ў ¤ў®©®Ґ б«®ў® CWD;
3) Ї®бЄ®«мЄг १г«мвЁагой п ЇҐаҐ¬Ґ п Ґбвм ¤ўгеЎ ©в®ў®Ґ зЁб«®, ЁЄ ЄЁҐ ҐҐ
ЇаҐ®Ўа §®ў Ёп Ґ г¦л.
‚ ®б⠫쮬 ⥪бв Їа®Ја ¬¬л Ґ ®в«Ёз Ґвбп ®в ЇаҐ¦ҐЈ®.
5. ‚ аЁ вл § ¤ Ё©
01. U = (A * X^2 - B * X + C) / D
02. U = (A * X + B * X^2) + C * X / D
03. U = (X^3 + Y^2 + 1) / (X - 1)
04. U = (A * X - B * Y) + ( X / A + Y / B)
05. U = A * X^2 - (X * Y^2 ) / B
06. U = (X + Y)^2 / (X + 1)^2
07. U = (X - Y)^2 + (X + Y)^2 / (X - Y)
08. U = X * (X - 1) * (X + 2) / (X - 3)
09. U = ((A * X^2) + (A^2 * X) / 2
10. U = (X^3 - Y^3 ) + (X^2 - Y^2) + X / Y
11. U = (A * X^2 - B * Y^2) / (A * B)
12. U = (X - Y + Z) * (X + Y - Z) / (X + Y + Z)
13. U = (A * (X + 1)^2 ) / (X^2 + 1)
14. U = (X^2 - A)^3 + (X^2 + 1) / 2
15. U = (A * X^2 - B * X + C) * (A / (B + C))
16. U = A * (X * (Y - X)) / 2 + Y / 3
17. U = A^2 * (X^2 + X + 1) / (A * X)
18. U = (X + Y^2) + (Y - X) / (X + 2)
19. U = X * Y^2 + Y * X^2 - X * Y / (X + Y)
20. U = (X - Y) * (Y - X) * (X + Y) / 3
21. U = (X^2 * Y - 2) / (X + 2)
22. U = (A * X^2 + 1) / (A + X + 1)
23. U = ((X + Y^2) + (X - Y^2)) / 2
24. U = (A * X - B * Y) + ( A / B + X / Y)
25. U = A * (X + 1) + A * (X - 1)^2 / (A * X)
26. U = (X^2 + Y^2 + (X * Y) - 1) / 3
27. U = A * X^2 - B * X + C * Y^2 / D * Y
28. U = X * (Y - X) / 2 + Y * (X - Y) / 3
29. U = 2 * X * Y^2 + 3 * X / (4 * Y)
30. U = X^3 - X^2 * Y + X / (Y^3 - Y^2)
31. U = A * X^2 + B * X + C / (A + C)
32. U = (X * Y - 2) / (X + 2) + (X + Y) / (Y - 2)
**********************************************************************
**********************************************************************