Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Assembler]-Da vettore di numeri a numero-Somma 2 numeri [x tasm]

    salve ho disperato bisogno di aiuto...
    premetto ke sto all'inizio per quanto riguarda la scrittura di programmi in asm [asmmebler!] x Tasm16 bit... io avrei bisogno di un programma ke mi faccia questo:

    -Acquisisca da input una stringa di numeri e metta ogni singolo numero in un vettore
    -Trasformare i numeri messi nel vettore nel numero vero e proprio e mettere questo numero in una variabile..
    [es]:
    Vettore: |0|1|2| <- [posto]
    valori: 4 5 6

    ecco io devo poi mettere questi tre numeri in una variabile unica trasformandola in numero ovvero... io poi dovrò avere una variabile, mettiamo ke si chiami num ke contenga quel valore ovvero

    num=456

    -inserire un secondo numero in un altro vettore e fare esattamente le cose ke ho fatto con il primo numero ovvero trasformarlo in una variabile..

    -Sommare le due variabili e mettere il risultato nella variabile Totale.

    Help me..
    #include <cervello.h>

  2. #2
    Eccoti accontentato.
    Premetto solo che l'utilizzo di un array per contenere le cifre lette da tastiera è inutile e premetto anche che (sicuramente lo saprai, ma lo scrivo solo per fartelo notare) in una variabile di lunghezza pari a un byte puoi inserire solo numeri compresi tra 0 e 255, nel caso dovessi utilizzare una word puoi inserire numeri tra 0 e 65535 (numeri interi senza segno).
    Il codice per avverare quanto da te richiesto è il seguente:
    codice:
    		title numeri
    		.model small,farstack
    		.stack
    		.data
    	numero	dw	?
    		.code
    		.startup
    		PUSH numero ;salvo il parametro nello stack per passarlo alla procedura di lettura
    		call readecimal ;procedura di lettura del numero
    		POP numero
    		.exit
      readecimal	proc
    		PUSH bp
    		mov bp,sp
    		push ax
    		push bx
    		push dx
    		xor bx,bx
    	dieci	db	10d
    	   lttr:mov ax,bx
    		mul dieci
    	   vrlt:mov ah,08h
    		int 21h
    		cmp al,0Dh ;la lettura del numero termina con l'invio
    		je fnlttr
    		mov ah,02h
    		mov dl,al
    		cmp al,30h
    		jb error
    		cmp al,39h
    		ja error
    		int 21h
    		sub al,30h
    		xor ah,ah
    		add bx,ax
    		jmp lttr
    	  error:mov dl,07h
    		int 21h
    		jmp vrlt
    	 fnlttr:mov [BP+4],bx
    		push dx
    		push bx
    		push ax
    		push bp
      readecimal	endp
    		end

  3. #3
    Scusami correggo le ultime quattro istruzioni (ad esclusione delle end): non sono delle push ma delle pop...
    (vecchio codice)
    codice:
    		title numeri
    		.model small,farstack
    		.stack
    		.data
    	numero	dw	?
    		.code
    		.startup
    		PUSH numero ;salvo il parametro nello stack per passarlo alla procedura di lettura
    		call readecimal ;procedura di lettura del numero
    		POP numero
    		.exit
      readecimal	proc
    		PUSH bp
    		mov bp,sp
    		push ax
    		push bx
    		push dx
    		xor bx,bx
    	dieci	db	10d
    	   lttr:mov ax,bx
    		mul dieci
    	   vrlt:mov ah,08h
    		int 21h
    		cmp al,0Dh ;la lettura del numero termina con l'invio
    		je fnlttr
    		mov ah,02h
    		mov dl,al
    		cmp al,30h
    		jb error
    		cmp al,39h
    		ja error
    		int 21h
    		sub al,30h
    		xor ah,ah
    		add bx,ax
    		jmp lttr
    	  error:mov dl,07h
    		int 21h
    		jmp vrlt
    	 fnlttr:mov [BP+4],bx
    		push dx
    		push bx
    		push ax
    		push bp
      readecimal	endp
    		end
    codice corretto
    codice:
    		title numeri
    		.model small,farstack
    		.stack
    		.data
    	numero	dw	?
    		.code
    		.startup
    		PUSH numero ;salvo il parametro nello stack per passarlo alla procedura di lettura
    		call readecimal ;procedura di lettura del numero
    		POP numero
    		.exit
      readecimal	proc
    		PUSH bp
    		mov bp,sp
    		push ax
    		push bx
    		push dx
    		xor bx,bx
    	dieci	db	10d
    	   lttr:mov ax,bx
    		mul dieci
    	   vrlt:mov ah,08h
    		int 21h
    		cmp al,0Dh ;la lettura del numero termina con l'invio
    		je fnlttr
    		mov ah,02h
    		mov dl,al
    		cmp al,30h
    		jb error
    		cmp al,39h
    		ja error
    		int 21h
    		sub al,30h
    		xor ah,ah
    		add bx,ax
    		jmp lttr
    	  error:mov dl,07h
    		int 21h
    		jmp vrlt
    	 fnlttr:mov [BP+4],bx
    		pop dx
    		pop bx
    		pop ax
    		pop bp
      readecimal	endp
    		end

  4. #4
    mitico... perfetto
    sei stato gentilissimo., grazie inifite!
    #include <cervello.h>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.