Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
25.02.2016
Размер:
9.07 Кб
Скачать
**********************************************************************
                      ‘€‘’…ЊЌЋ… ЏђЋѓђЂЊЊ€ђЋ‚ЂЌ€…
**********************************************************************

                         *******************
                         ***   ’Ґ¬  17   ***
                         *******************

**********************************************************************
        ‚‘’ђЋ…ЌЌ›‰ Ђ‘‘…ЊЃ‹…ђЌ›‰ ЉЋ„ ў џ‡›Љ… PASCAL
**********************************************************************

        –Ґ«м а Ў®вл:

€§гзЁвм ¬Ґе ­Ё§¬л ­ ЇЁб ­Ёп Є®¤  ­  п§лЄҐ  бᥬЎ«Ґа  
ў­гваЁ Є®¤  ­  п§лЄҐ Џ бЄ «м. 


        1. ‡ ¤ ­ЁҐ ­  ЇаҐ¤ў аЁвҐ«м­го Ї®¤Ј®в®ўЄг

Ћ§­ Є®¬Ёвмбп б ᮤҐа¦ ­ЁҐ¬ агЄ®ў®¤бвў 
€§гзЁвм ЇаЁўҐ¤Ґ­­л© ⥮аҐвЁзҐбЄЁ© ¬ вҐаЁ «
‚лЇ®«­Ёвм Їа ЄвЁзҐбЄго з бвм а Ў®вл
‘®бв ўЁвм ®взҐв ® а Ў®вҐ
ЏаҐ¤кпўЁвм १г«мв вл а Ў®вл ЇаҐЇ®¤ ў вҐ«о


        2. Ља вЄЁҐ ⥮аҐвЁзҐбЄЁҐ ᢥ¤Ґ­Ёп

2.1. ЂбᥬЎ«Ґа­лҐ ўбв ўЄЁ ў Їа®Ја ¬¬г ­  Џ бЄ «Ґ

Њ®¦­® ўбв ўЁвм  бᥬЎ«Ґа­л© Є®¤ ў «оЎ®¬ ¬Ґб⥠Їа®Ја ¬¬л. Ќ з «®  бᥬЎ«Ґа­®Ј® 
Є®¤  ®в¬Ґз Ґв ASM, § Є ­зЁў Ґв END. Њ®¦­® ЇЁб вм ­ҐбЄ®«мЄ® Є®¬ ­¤ ­  ®¤­®© 
бва®ЄҐ, а §¤Ґ«пп Ёе в®зЄ®© б § Їпв®©, Ё«Ё ­  ®в¤Ґ«м­ле бва®Є е. ‹®Є «м­лҐ 
¬ҐвЄЁ ¤®«¦­л ­ зЁ­ вмбп б @, ЇаЁзҐ¬ ®Ўкпў«пвм Ёе § а ­ҐҐ ­Ґ ­г¦­®. „®бвгЇ Є 
ЇҐаҐ¬Ґ­­л¬ Џ бЄ «п ўлЇ®«­пвм Ї® Ёе Ё¬Ґ­ ¬ Ё«Ё  ¤аҐб ¬ (­г¦­® б®Ў«о¤ вм а §¬Ґа). 

ЏаЁ¬Ґа  бᥬЎ«Ґа­®© ўбв ўЄЁ:

program AsmPas1;
    var
      i: Integer;
      s: String;
BEGIN
      i:=2;
      Write('i befire : ',i);
asm
      mov bx,i
      mov al,34
      mul bl
      mov i,ax
end;
      WriteLn(', and after: ',i);
asm
      lea di,s
      mov ax,SEG @data
      mov es,ax
      mov cx,16
      mov al,cl
      cld
      stosb
      mov al,31h
@1:   stosb; inc al; LOOP @1
end;
      WriteLn('S: ',S)
END.

ѓагЇЇг Є®¬ ­¤ ­  п§лЄҐ  бᥬЎ«Ґа  ¬®¦­® ўбв ўЁвм ў «оЎ®Ґ ¬Ґбв® Їа®Ја ¬¬л. 
Ќ зЁ­ Ґвбп ЈагЇЇ  ¤ЁаҐЄвЁў®© ASM Ё § Є ­зЁў Ґвбп ¤ЁаҐЄвЁў®© END. Љ®¬ ­¤л ¬®¦­® 
ЇЁб вм ­  ®¤­®© бва®ЄҐ, а §¤Ґ«пп Ёе в®зЄ®© б § Їпв®©. Љ®¬¬Ґ­в аЁЁ б«Ґ¤гҐв 
ЇЁб вм ў бвЁ«Ґ Џ бЄ «п - ў дЁЈга­ле бЄ®ЎЄ е {} Ё«Ё ў бЄ®ЎЄ е (* ... *).


2.2. Љ®¬Ї®­®ўЄ  Їа®Ја ¬¬ ­  п§лЄҐ Џ бЄ «м Ё п§лЄҐ  бᥬЎ«Ґа 

‡¤Ґбм Ї®Є § ­®, Є Є ¬®¦­® гбв ­®ўЁвм бўп§м ¬Ґ¦¤г Їа®Ја ¬¬ ¬Ё ­  п§лЄҐ Џ бЄ «м 
б Їа®Ја ¬¬ ¬Ё ­  п§лЄҐ  бᥬЎ«Ґа . Ќ  аЁбг­ЄҐ ¤ ­ ЇаЁ¬Ґа бўп§Ё Їа®бв®© Џ бЄ «м-
Їа®Ја ¬¬л б  бᥬЎ«Ґа­®© Ї®¤Їа®Ја ¬¬®©. Џ бЄ «м-Їа®Ја ¬¬г Ё  бᥬЎ«Ґа­ п 
Їа®Ја ¬¬г ­г¦­® бЄ®¬ЇЁ«Ёа®ў вм ¤«п Ї®«г祭Ёп ®ЎкҐЄв­ле ¬®¤г«Ґ©. “вЁ«Ёв  LINK 
Є®¬Ї®­гҐв ў¬Ґб⥠нвЁ ¤ў  ¬®¤г«п ў ®¤Ё­ ўлЇ®«­Ё¬л© EXE-¬®¤г«м.

--------------------------------------------------
program pascal (input,output);

procedure move_cursor(const row: integer;
                      const col: integer); extern;
var
    temp_row:       integer;
    temp_col:       integer;

begin
    write('Enter cursor row:');
    readln(temp_row);

    write('Enter cursor column:');
    readln(temp_col);

    move_cursor(temprow,temp_col );
    write('New cursor location');
end.

==================================================

TITLE MOVCUR Џ®¤Їа®Ја ¬¬  ­  п§лЄҐ  бᥬЎ«Ґа ,
;            ўл§лў Ґ¬ п Ё§ Їа®Ја ¬¬л ­  Џ бЄ «Ґ
PUBLIC MOVE_CURSOR
;-------------------------------------------------
; MOVE_CURSOR:    “бв ­ ў«Ёў Ґв Єгаб®а
;                 Ї® ЇҐаҐ¤ ­­л¬ Ї а ¬Ґва ¬
; Џ а ¬Ґвал: const row    ‘ва®Є  Ё бв®«ЎҐж
;            const col      ¤«п гбв ­®ўЄЁ Єгаб®а 
; ‚®§ўа й Ґ¬®Ґ §­ зҐ­ЁҐ:  ЋвбгвбвўгҐв
;-------------------------------------------------
CODESEG SEGMENT PARA PUBLIC 'CODE'

MOVE_CURSOR PROC FAR
      ASSUME CS:CODESEG
ROWWPAR	EQU	8		;Џ а ¬Ґва "бва®Є "
COLPAR	EQU	6		;Џ а ¬Ґва "бв®«ЎҐж"

      PUSH	BP		;‘®еа ­Ёвм ॣЁбва BP
      MOV	BP,SP		;“бв ­®ўЁвм BP ­  Ї а ¬Ґвал

      MOV	SI,[BP+ROWPAR]	;SI гЄ §лў Ґв ­  бва®Єг
      MOV	DH,[SI]		;Џ®¬ҐбвЁвм бв®«ЎҐж ў DL

      MOV	AH,02		;”г­ЄжЁп гбв ­®ўЄЁ Єгаб®а 
      SUB	BH,BH		;‘ва ­Ёж  #0
      INT	10H

      POP	BP		;‚Ґа­гвмбп
      RET	4		;  ў ўл§лў ойго Їа®Ја ¬¬г
MOVE_CURSOR ENDP
CODESEG ENDS
END


‚ Џ бЄ «м-Їа®Ја ¬¬Ґ ®ЇаҐ¤Ґ«Ґ­л ¤ўҐ ЇҐаҐ¬Ґ­­лҐ: temp_row Ё temp_col, Є®в®алҐ 
ᮤҐа¦ в ўўҐ¤Ґ­­лҐ б Є« ўЁ вгал §­ зҐ­Ёп бва®ЄЁ Ё Є®«®­ЄЁ ᮮ⢥вб⢥­­®. 
Џа®Ја ¬¬  ЇҐаҐ¤ Ґв  ¤аҐб  ЇҐаҐ¬Ґ­­ле temp_row Ё temp_col ў ўЁ¤Ґ Ї а ¬Ґва®ў ў 
 бᥬЎ«Ґа­го Ї®¤Їа®Ја ¬¬г ¤«п гбв ­®ўЄЁ Єгаб®а  Ї® нвЁ¬ Є®®а¤Ё­ в ¬. Џ бЄ «м-
Їа®Ја ¬¬  ®ЇаҐ¤Ґ«пҐв Ё¬п  бᥬЎ«Ґа­®© Ї®¤Їа®Ја ¬¬л ў ®ЇҐа в®аҐ procedure Є Є 
move_cursor Ё ®ЇаҐ¤Ґ«пҐв ¤ў  Ї а ¬Ґва  Є Є extern (ў­Ґи­ЁҐ). ЋЇҐа в®а ў 
Џ бЄ «м-Їа®Ја ¬¬Ґ, Є®в®ал© ўл§лў Ґв  бᥬЎ«Ґа­го Їа®Ја ¬¬г Ї® Ё¬Ґ­Ё Ё ЇҐаҐ¤ Ґв 
Ї а ¬Ґвал, Ё¬ҐҐв ўЁ¤:
      move_cursor (temp_row,temp_col);

—ҐаҐ§ б⥪ ЇҐаҐ¤ овбп б«Ґ¤гойЁҐ ўҐ«ЁзЁ­л: гЄ § вҐ«м Ў«®Є  ўл§лў о饩 Їа®Ја ¬¬л, 
гЄ § вҐ«м ­  ᥣ¬Ґ­в ў®§ўа в , ᬥ饭ЁҐ ў®§ўа в ,  ¤аҐб  ¤ўге ЇҐаҐ¤ ў Ґ¬ле 
Ї а ¬Ґва®ў. ‘¬ҐйҐ­Ёп ¤«п Є ¦¤®Ј® н«Ґ¬Ґ­в  ў б⥪Ґв Є®ўл:

      00	“Є § вҐ«м Ў«®Є  ўл§лў о饩 Їа®Ја ¬¬л
      02	“Є § вҐ«м ᥣ¬Ґ­в  ў®§ўа в 
      04	“Є § вҐ«м ᬥ饭Ёп ў®§ўа в 
      06	Ђ¤аҐб ўв®а®Ј® Ї а ¬Ґва 
      08	Ђ¤аҐб ЇҐаў®Ј® Ї а ¬Ґва 

’ Є Є Є  бᥬЎ«Ґа­ п Ї®¤Їа®Ја ¬¬  Ўг¤Ґв ЁбЇ®«м§®ў вм ॣЁбва BP, ҐЈ® ­Ґ®Ўе®¤Ё¬® 
б®еа ­Ёвм ў б⥪Ґ ¤«п Ї®б«Ґ¤го饣® ў®ббв ­®ў«Ґ­Ёп ЇаЁ ў®§ўа вҐ ў ўл§лў ойго 
Џ бЄ «м-Їа®Ја ¬¬г. 

ђҐЈЁбва SP ®Ўлз­®  ¤аҐбгҐв н«Ґ¬Ґ­вл б⥪ . Ќ® нв®в ॣЁбва ­Ґ«м§п ЁбЇ®«м§®ў вм 
Є Є Ё­¤ҐЄб­л©, Ё Ї®б«Ґ б®еа ­Ґ­Ёп бв а®Ј® §­ зҐ­Ёп ॣЁбва  BP ­Ґ®Ўе®¤Ё¬® 
ЇҐаҐб« вм  ¤аҐб Ё§ ॣЁбва  SP ў BP. ќв®в и Ј Ї®§ў®«пҐв ЁбЇ®«м§®ў вм ॣЁбва BP 
Є Є Ё­¤ҐЄб­л© ॣЁбва ¤«п ¤®бвгЇ  Є н«Ґ¬Ґ­в ¬ ў б⥪Ґ.

‘«Ґ¤гойЁ© и Ј - Ї®«гзЁвм ¤®бвгЇ Є  ¤аҐб ¬ ¤ўге ЇҐаҐ¤ ­­ле Ї а ¬Ґва®ў ў б⥪Ґ. 
ЏҐаўл© Ї а ¬Ґва ( ¤аҐб бва®ЄЁ) ­ е®¤Ёвбп ў б⥪Ґ Ї® ᬥ饭Ёо 08 Ё ¬®¦Ґв 
 ¤аҐб®ў вмбп Ї® BP+08. ‚в®а®© Ї а ¬Ґва ( ¤аҐб бв®«Ўж ) ­ е®¤Ёвбп ў б⥪Ґ Ї® 
ᬥ饭Ёо 06 Ё ¬®¦Ґв  ¤аҐб®ў вмбп Ї® BP+06.

„ў   ¤аҐб  Ё§ б⥪  ¤®«¦­л ЇҐаҐ¤ ў вмбп ў ®¤Ё­ Ё§ Ё­¤ҐЄб­ле ॣЁбва®ў - BX, DI 
Ё«Ё SI. ‚ ЇаЁ¬ҐаҐ  ¤аҐб бва®ЄЁ ЇҐаҐбл« Ґвбп Ё§ [BP+08] ў ॣЁбва SI,   § вҐ¬ 
ᮤҐа¦Ё¬®Ґ Ё§ [SI] (§­ зҐ­ЁҐ бва®ЄЁ) ЇҐаҐбл« Ґвбп ў ॣЁбва DH.

‡­ зҐ­ЁҐ бв®«Ўж  ЇҐаҐбл« Ґвбп  ­ «®ЈЁз­л¬ бЇ®б®Ў®¬ ў ॣЁбва DL. ‡ вҐ¬ 
Ї®¤Їа®Ја ¬¬  ЁбЇ®«м§гҐв §­ зҐ­Ёп бва®ЄЁ Ё бв®«Ўж  ў ॣЁбвॠDX ЇаЁ ўл§®ўҐ Ѓ‘‚‚ 
¤«п гбв ­®ўЄЁ Єгаб®а . ЏаЁ ўл室Ґ Ї®¤Їа®Ја ¬¬  ў®ббв ­ ў«Ёў Ґв ॣЁбва BP. 
Љ®¬ ­¤  RET Ё¬ҐҐв ®ЇҐа ­¤, §­ зҐ­ЁҐ Є®в®а®Ј® ў¤ў®Ґ Ў®«миҐ зЁб«  Ї а ¬Ґва®ў 
(§¤Ґбм 2е2, Ё«Ё 4). Џ а ¬Ґвал  ўв®¬ вЁзҐбЄЁ ўлў®¤пвбп Ё§ б⥪ , Ё гЇа ў«Ґ­ЁҐ 
ЇҐаҐе®¤Ёв ў ўл§лў ойго Їа®Ја ¬¬г.

…б«Ё Ї®¤Їа®Ја ¬¬Ґ ЇаҐ¤бв®Ёв Ё§¬Ґ­Ёвм ᥣ¬Ґ­в­л© ॣЁбва, в® ­Ґ®Ўе®¤Ё¬® 
б®еа ­Ёвм ҐЈ® §­ зҐ­ЁҐ Є®¬ ­¤®© PUSH ­  ўе®¤Ґ Ё ў®ббв ­®ўЁвм Є®¬ ­¤®© POP ­  
ўл室Ґ. Њ®¦­® в Є¦Ґ ЁбЇ®«м§®ў вм б⥪ ¤«п ЇҐаҐ¤ зЁ ўҐ«ЁзЁ­ Ё§ Ї®¤Їа®Ја ¬¬л ў 
ўл§лў ойго Їа®Ја ¬¬г. ђ бᬮв७­ п Ї®¤Їа®Ја ¬¬  ­Ґ ў®§ўа й Ґв §­ зҐ­Ё©, ­® ў 
п§лЄҐ Џ бЄ «м ЇаҐ¤Ї®« Ј Ґвбп, зв® Ї®¤Їа®Ја ¬¬  ў®§ўа й Ґв ®¤­® б«®ў® ў ॣЁбвॠ
AX Ё«Ё ®¤­® ¤ў®©­®Ґ б«®ў® ў ॣЁбва®ў®© Ї аҐ DX:AX.

‚ १г«мв вҐ Є®¬Ї®­®ўЄЁ ¤ўге Їа®Ја ¬¬ Ўг¤Ґв Ї®бв஥­  Є ав  Є®¬Ї®­®ўЄЁ, Ј¤Ґ 
ЇҐаўл© н«Ґ¬Ґ­в PASCAL ЇаҐ¤бв ў«пҐв Џ бЄ «м-Їа®Ја ¬¬г,   ўв®а®© н«Ґ¬Ґ­в CODESEG 
(Ё¬п ᥣ¬Ґ­в  Є®¤ ) ЇаҐ¤бв ў«пҐв  бᥬЎ«Ґа­го Ї®¤Їа®Ја ¬¬г. „ «ҐҐ б«Ґ¤гҐв 
­ҐбЄ®«мЄ® Ї®¤Їа®Ја ¬¬ ¤«п Џ бЄ «м-Їа®Ја ¬¬л. 


        3. ‘®¤Ґа¦ ­ЁҐ ®взҐв 
1) ­®¬Ґа Ё ­ §ў ­ЁҐ а Ў®вл
2) 楫м а Ў®вл
3) Ё­¤ЁўЁ¤г «м­®Ґ § ¤ ­ЁҐ ­  а Ў®вг
4) гЄ § ­ЁҐ Ё¬Ґ­ Ёб室­®Ј® Ё ЁбЇ®«­пҐ¬®Ј® д ©«®ў
5) ўлў®¤л

ЋвзҐв ЇаҐ¤бв ў«пҐвбп ў ўЁ¤Ґ ⥪бв®ў®Ј® д ©« , ўлЇ®«­Ґ­­®Ј® ў д®а¬ вҐ DOS 
(Є®¤®ў п бва ­Ёж  866). Љ ®взҐвг ¤®«¦­л ЇаЁ« Ј вмбп д ©« Ёб室­®Ј® Є®¤  
Їа®Ја ¬¬л Ё а Ў®зЁ© ЁбЇ®«­пҐ¬л© д ©«. 


        4. ‡ ¤ ­ЁҐ ­  а Ў®вг

1. ђ §®Ўа вмбп ў ЇаЁўҐ¤Ґ­­ле ¬ вҐаЁ « е.
2. ЏаЁ Ї®¤Ј®в®ўЄҐ Є а Ў®вҐ б­ з «  б®бв ўЁвм Їа®Ја ¬¬г ­a 
   п§лЄҐ Turbo Pascal, ўЄ«оз ойго ў бҐЎп  бᥬЎ«Ґа­го ўбв ўЄг. 
   ЏаЁ н⮬ ЁбЇ®«м§®ў вм бў®© ў аЁ ­в Ї® ЇаЁ«®¦Ґ­Ёо "mathema.docx"
   (¬®¦­® ЁбЇ®«м§®ў вм да Ј¬Ґ­вл бў®Ґ© Їа®Ја ¬¬л Ї® ⥬Ґ "€бЇ®«м§®ў ­ЁҐ 
   ў­Ґи­Ёе Їа®жҐ¤га"). ‡ Їа®бл ­  ўў®¤ ўе®¤­ле ¤ ­­ле ¤«п ўлзЁб«Ґ­Ёп, Ёе ўў®¤ 
   Ё ўлў®¤ १г«мв в  ўлзЁб«Ґ­Ёп ®ЎҐбЇҐзЁвм б।бвў ¬Ё Џ бЄ «п.
3. Џ®¤Ј®в®ўЁвм ­Ґ ¬Ґ­ҐҐ ваҐе вҐбв®ўле ­ Ў®а®ў Ёб室­ле ¤ ­­ле, 
   ¤Ґ¬®­бваЁагойЁе Їа ўЁ«м­®бвм а Ў®вл Їа®Ја ¬¬л.
4. ‚ўҐбвЁ Ё ®в« ¤Ёвм Їа®Ја ¬¬г б Ї®¬®ймо  бᥬЎ«Ґа  TASM 
   (Ґб«Ё вॡгҐвбп) Ё Є®¬ЇЁ«пв®а  Turbo Pascal. 
5. ‘®бв ўЁвм ўв®аго Ї®аЈа ¬¬г, ®в«Ёз­го ⥬, зв®  бᥬЎ«Ґа­ п з бвм
   ®д®а¬«пҐвбп Є Є ў­Ґи­пп Ї®¤Їа®Ја ¬¬  Џ бЄ «м-Їа®Ја ¬¬л.   
6. Џ®¤Ј®в®ўЁвм ­Ґ ¬Ґ­ҐҐ ваҐе вҐбв®ўле ­ Ў®а®ў Ёб室­ле
   ¤ ­­ле, ¤Ґ¬®­бваЁагойЁе Їа ўЁ«м­®бвм а Ў®вл Їа®Ја ¬¬л.
7. ‚ўҐбвЁ Ё ®в« ¤Ёвм Їа®Ја ¬¬г б Ї®¬®ймо  бᥬЎ«Ґа  TASM 
   (Ґб«Ё вॡгҐвбп) Ё Є®¬ЇЁ«пв®а  Turbo Pascal. 
Џа®¤Ґ¬®­бваЁа®ў вм ЇаҐЇ®¤ ў вҐ«о а Ў®вг Їа®Ја ¬¬ ў ўЁ¤Ґ
   ўлЇ®«­Ґ­Ёп Ї®¤Ј®в®ў«Ґ­­ле вҐбв®ўле ЇаЁ¬Ґа®ў.
8. Ћд®а¬Ёвм ®взҐв Ї® а Ў®вҐ. ЋЎ­ а㦥­­лҐ ЇаЁ ®в« ¤ЄҐ ®иЁЎЄЁ
   § ЇЁб вм ў ®взҐв. ЋЇЁб вм ў ®взҐвҐ १г«мв вл а Ў®вл Їа®Ја ¬¬.

**********************************************************************
**********************************************************************

Соседние файлы в папке 17