Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

Programma con chiamata a procedura NEAR - EEsercizi seconda parte

tecnica



Esercizi seconda parte


; Programma con chiamata a procedura NEAR

;il programma ricerca il massimo ed il minimo

;tra i valori ad 8 bit contenuti in DATI

;memorizza i valori trovati nelle variabili MAX e MIN


mstack     SEGMENT STACK

DB 64 DUP (?)

mstack     ENDS


data SEGMENT



dati    db 1,2,3,4,4,4,7,8,9,0,27,232,255,132,128,100

max db 0

min db 0

data ENDS


codice SEGMENT

ASSUME CS : codice, DS: data, SS:stack

Inizio: mov AX, data

mov DS, data

mov si, offset dati ;memorizza in AL e AH il primo valore dell'elenco

mov al, [si] ;prepara l'indirizzo dei dati ed il numero di giri

mov ah, al

mov cx, 15

ini:    inc si ;punta al secondo dato per iniziare i confronti

call confro

loop ini

;memorizza i risultati

mov max,al

mov min,ah

mov AH, 4CH

int 21H


confro PROC NEAR

;confronta ogni dato con AL e AH e sostituisce, se trova un nuovo MAX o MIN

cmp al,[si]

jae mass

mov al,[si]

mass:  cmp ah,[si]

jbe mini

mov ah, [si]

mini:     RET

confro ENDP

codice ENDS

END   INIZIO


II versione


mstack     SEGMENT STACK

DB 64 DUP (?)

mstack     ENDS

data SEGMENT

dati    db 1,2,3,4,4,4,7,8,9,0,27,232,255,132,128,100

max db 0

min db 0

data ENDS


codice SEGMENT

main PROC FAR

ASSUME CS : codice, DS: data, SS:stack

push DS

sub AX,AX

push AX

mov AX, data

mov DS, data

mov si, offset dati

mov al, [si]

mov ah, al

mov cx, 15

ini:    inc si

call confro

loop ini

mov max,al

mov min,ah

RET

main     ENDP


confro PROC NEAR

cmp al,[si]

jae mass

mov al,[si]

mass:  cmp ah,[si]

jbe mini

mov ah, [si]

mini:     RET

confro ENDP

codice ENDS

END 

III versione

.model small

.stack

.data

dati    db 1,2,3,4,4,4,7,8,9,0,27,232,255,132,128,100

max db 0

min db 0


.code

main PROC FAR

.startup

mov SI, offset dati

mov AL, [SI]

mov AH, AL

mov cx, 15

ini:    inc SI

call confro

loop ini

mov max,AL

mov min,AH

RET

main     ENDP


confro PROC NEAR

cmp al,[si]

jae mass

mov al,[si]

mass:  cmp ah,[si]

jbe mini

mov ah, [si]

mini:     RET

confro ENDP

END

; lettura da tastiera di un numero di due cifre. Il numero viene convertito da ASCII e

; posto in AL

letnume proc

push bx

mov AH,1

int 21h

sub AL, 30h ; la sottrazione è necessaria per convertire il codice ASCII

mov BL,10

mul BL ; il primo numero rappresenta le decine

mov BL, AL

mov AH, 1

int 21h

sub AL, 30h

add AL,BL

pop BX

ret

letnum endp


;programma che esegue la media di tre dati appartenenti a tre gruppi di dati a 16 bit

; viene memorizzata la parte intera in un quarto buffer

.model small

.stack

.data

num1 dw 15,24,3000, 4444,222,6666,2000,45,600,1000

num2 dw 2200,4500,4000,3000,5000,2000,30,440,3300,2000

num3 dw 400,3000,2000,4000,5000,3330,46,420,1000,1000

medie dw 10 dup (0)

.code

.startup

mov si, 0

mov bx, 3

mov cx, 10

m:    mov dx, 0

mov ax, num1[si]

add ax, num2[si]

jnc rip1

inc dx

rip1: add ax,num3[si]

jnc rip2

inc dx

rip2: div bx

mov medie[si],ax

inc si

inc si

loop m

.exit

end




Privacy




Articolo informazione


Hits: 2209
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024