.


:




:

































 

 

 

 





, Borland Pascal, - , , , - .

19.4.1.

Borland Pascal (DATA DSEG). DB, DW . .), :

DATA SEGMENT PUBLIC AInt DW? AByte DB?

DATA ENDS

, , . , (private) , Borland Pascal ( Pascal-

). . ,

AInt DW 42h

, AInt .

, Borland Pascal EXTRN.

19.4.2.

, .

AsmProc -- :

CODE SEGMENT

ASSUME cs:CODE AsmProc PROC FAR,'procedure AsmProc(i:integer);

PUBLIC AsmProc

LOCAL a:word, b:word == LocalSpace; [bp-2],

; b - [bp-4] i EQU WORD PTR [BP+6]

push bp

mov bp.sp

sub sp, LocalSpace. SP

mov ax,42

mov a,ax

xor ax,ax

mov b,ax.

mov sp.bp

pop bp

ret 2 AsmProc ENDP CODE ENDS

END

LOCAL a:word, b:word = LocalSpace

^ [BP-2J, b [-4|, LocalSpace - 4 ( ) .

SP. 1< , , :

; sub sp, LocalSpace mov ,42 push ax xor ax,ax push ax

, .

- 8018), is , PUSH . , BP , - , .

19.5. Borland Pascal

 

19.5.1.

 

num (ByteCount*2). (4 ) ADD-DAA-ADC-DAA.

HexStr FAR-, , Borland Pascal FAR, , $F+.

( HEX.ASM):

 

CODE SEGMENT

ASSUME cs:CODE,ds:NOTHING

; (+2 )

byteCount EQU BYTE PTR ss:[bp+6]

num EQU DWORD PTR ss:[bp+8]

; (+2 )

resultPtr EQU DWORD PTR ss:[bp+12]

HexStr PROC FAR

PUBLIC HexStr

push bp

mov bp,sp;

; ,

; , ,

; ES

les di,resultPtr;

mov dx,ds; DS Borland Pascal DX

; ,

; , ,

; DS

lds si,num;

mov al,byteCount;

xor ah,ah

mov cx,ax

add si,ax;

dec si

; 1

shl ax,1; ? (2/)

; DF

cld;

hexloop:

;

stosb; HexLoop:

; DF , ; ( ;)

std; ;

;

lodsb;

mov ah,al;

; 1

shr al,1;

shr al,1

shr al,1

shr al,1

add al,90h;

; , 99,

; CF

daa

; , CF

adc al,40h

daa; ASCII

; DF

cld

stosb

mov al,ah;

and al,0Fh

add al,90h

daa

adc al,40h

daa

stosb

loop HexLoop

mov ds,dx; DS

pop bp

ret 6; 6

HexStr ENDP

CODE ENDS

END

Borland Pascal, , ax HEX.OBJ, :

 

program HexTest;

var num: Word;

 

function HexStr (var num; ByteCount:byte):string; far; external;

{$L HEX}

 

begin

num:=12345;

Writeln(' ',num, '=',HexStr(num,SizeOf(num)));

end.

 

18.1.9. , Pascal

, C++ , . , Borland C++ Pascal, , . Pascal - PASCAL.

Pascal :

'; : TEST (i,|, k);

i equ 8 j equ 6 k equ 4

.MODELL small.CODE PUBLIC TEST TEST PROC push bp mov bp.sp mov ax,[bp+i] add ax,[bp+j] sub ax,[bp+k] pop bp

ret 6 [ TEST ENDP END

. 18.4 MOV BP,SP.

 

 

, Pascal .

, Pascal, , C++ ADD SP, n .

 

. 18.4. Pascal.

 

 
 





:


: 2015-10-01; !; : 395 |


:

:

, .
==> ...

1470 - | 1408 -


© 2015-2024 lektsii.org - -

: 0.02 .