Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao a tutti ragazzi. Ho da svolgere il seguente esercizio:
- Date due stringhe in input inserirle in una terza stringa e darla in output.
Ciò che ho realizzato è un semplice input con relativa gestione delle stringhe prese. Ma non ho proprio idee sul come poter inserire nella terza stringa le altre due. Ho provato dando gli offset oppure passando lettera per lettera in un ciclo ma mi son reso conto che non è possibile. Mi dareste una mano a capire?
Codice sorgente - presumibilmente Plain Text
dosseg
.model tiny
.code
org 0100h
begin: jmp main
stringa1 db 40, 0, 38 dup (0EDh)
stringa2 db 40, 0, 38 dup (0EEh)
stringa3 db 80, 0, 78 dup (0EFh)
frase1 db 'Inserisci la prima stringa:',10,13,'$'
frase2 db 'Inserisci la seconda stringa:',10,13,'$'
INPUT1 proc near
mov AH, 09h
lea DX, frase1
int 21h
mov AH, 01h
lea DX, stringa1
int 21h
lea BX, stringa1
xor AX, AX
mov AL, [BX+1]
mov DI, AX
mov byte ptr [BX+DI+2], '$'
ret
INPUT1 endp
INPUT2 proc near
mov AH, 09h
lea DX, frase2
int 21h
mov AH, 01h
lea DX, stringa2
int 21h
lea DX, stringa2
xor AX, AX
mov AL, [BX+1]
mov DI, AX
mov byte ptr [BX+DI+2], '$'
ret
INPUT2 endp
main: call INPUT1
call INPUT2
mov AH, 4ch
int 21h
end begin
Ultima modifica effettuata da xMauri il 26/02/2012 alle 23:47
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
E' scritto nel titolo, Intel x8086. Per compilare TASM e linkare TLINK. Mi son dimenticato di precisare che non posso usare istruzioni apposite se esistessero, ma riuscire a farlo con le istruzioni usate per l'input o se vogliamo 'le classiche'.
*Avevo scritto male il sorgente, modificato.
Ultima modifica effettuata da xMauri il 26/02/2012 alle 23:47
Mi son dimenticato di precisare che non posso usare istruzioni apposite se esistessero, ma riuscire a farlo con le istruzioni usate per l'input o se vogliamo 'le
classiche'.
Non capisco ... comunque, non ho provato il codice ma dovrebbe essere qualcosa di simile
Codice sorgente - presumibilmente Altri Linguaggi
cld
lea si,stringa1+2
lea di,stringa3
xor ch,ch
mov cl,stringa1+1
repz movsb
lea si,stringa2+2
mov cl,stringa2+1
repz movsb
mov al,'$'
mov [di],al
Considera che la stringa3 non deve essere strutturata come le altre due perché è in output e non in input. Per questo ho inserito l'indirizzo di stringa3 in di direttamente come se fosse
stringa3 db 80 dup (00h)
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Chiedo scusa per la confusione, hai perfettamente ragione sulla scrittura del nome. Inoltre cerco di capire un po il sorgente, ti farò sapere al più presto, intanto ti ringrazio per l'aiuto.
*
Codice sorgente - presumibilmente Plain Text
repz movsb
Cosa fa questa istruzione? Inoltre non posso usarla per risolvere il problema, purtroppo mi è stato chiesto così. Se capisco cosa fà posso provare a sostituirla con altro.
Ultima modifica effettuata da xMauri il 26/02/2012 alle 23:59
Sono istruzioni di uso comune, proprio per la gestione delle stringhe.
In pratica, per il tuo caso, equivale a
Codice sorgente - presumibilmente Altri Linguaggi
loop: mov al,[si]
mov [di],al
inc si
inc di
dec cx
jnz loop
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
controlla il flag Z che viene modificato dall'istruzione precedente
dec cx
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.