Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-12-2009, 13:51   #1
ShadyA&B
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 688
[ASSEMBLY] Confronto 2 caratteri da tastiera

Salve,
sto impazzendo per trovare l'errore (sicuramente un'istruzione mancante) per attivare il doppio "if" che in assembly manca e si può emulare solo con l'istruzione di salto.

Devo richiedere da tastiera un carattere, se "m" deve stampare un messaggio al maschile, se "f" deve stampare un messaggio al femminile.

Ecco il codice completo che ho buttato giù:

Codice:
; multi-segment executable file template. 



data segment
    ; add your data here!
    pkey db 13,10, "press any key...$" 
    mes_gen1 db 'Sei maschio o femmina? $'
    mes_gen2 db 13,10, 'Inserisci m o f ->  $'
    mes_masch db 13,10,"Benvenuto nel mondo della programmazione assembly $"
    mes_femm db 13,10, "Benvenuta nel mondo della programmazione assembly $"
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
    MOV DX, 0

    ; add your code here
      
           
    ;STAMPA  DOMANDA                    
    lea dx, mes_gen1
    mov ah, 9
    int 21h                     
           
           
      
    ;STAMPA RICHIESTA  SCELTA                    
    lea dx, mes_gen2
    mov ah, 9
    int 21h                 
             
             
    ;CHIEDI CARATTERE DA TASTIERA
    mov ah,00h
    int 16h
    
    cmp al,'m'
    je maschio
    cmp al, 'f'
    je femmina
    
    maschio: lea dx, mes_masch
             mov ah,9
             int 21h 
             
    femmina: lea dx, mes_femm
             mov ah,9
             int 21h
             
                        
                          
    lea dx, pkey
    mov ah, 9
    int 21h        ; output string at ds:dx
    
    ; wait for any key....    
    mov ah, 1
    int 21h
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends




end start ; set entry point and stop the assembler.
L'istruzione di salto je mi sembra giusta visto che c'è da confrontare un'uguaglianza...in "al" perchè quel tipo di interrupt salva in al il carattere immesso.. Però andando a compilare ed eseguire qualsiasi carattere immetto mi stampa entrambe le stringhe.. in pratica non riesco AD ATTIVARE il salto.
ShadyA&B è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2009, 15:04   #2
ShadyA&B
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 688
Ho risolto, praticamente non si può fare un "if-if" come in C, ma ci si deve per forza costruire una struttura "if sì, salta a sì, if no, salta a no, else fai questo".

Se può servire a qualcuno inserisco il codice finale

Codice:
; multi-segment executable file template. 



data segment
    ; add your data here!
    pkey db 13,10, "press any key...$" 
    mes_gen1 db 'Sei maschio o femmina? $'
    mes_gen2 db 13,10, 'Inserisci m o f ->  $'
    mes_masch db 13,10,"Benvenuto nel mondo della programmazione assembly $"
    mes_femm db 13,10, "Benvenuta nel mondo della programmazione assembly $"
    errore db 13,10, 'errore $'
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax
    mov al,0


    ; add your code here
      
           
    ;STAMPA  DOMANDA                    
    lea dx, mes_gen1
    mov ah, 9
    int 21h                     
           
           
      
    ;STAMPA RICHIESTA  SCELTA                    
    lea dx, mes_gen2
    mov ah, 9
    int 21h                 
             
             
    ;CHIEDI CARATTERE DA TASTIERA
    mov ah,00h
    int 16h 
    
     
    cmp al,'f'
    je femmina 
    cmp al,'m'
    je maschio
    
    lea dx,errore
    mov ah,9
    int 21h
    jmp continua
    
          maschio:  
                 lea dx,mes_masch
                 mov ah,9
                 int 21h 
                 jmp continua
 
          femmina: 
                lea dx,mes_femm
                mov ah,9
                int 21h
                jmp continua 
              
 continua:                         
    lea dx, pkey
    mov ah, 9
    int 21h        ; output string at ds:dx
    
    ; wait for any key....    
    mov ah, 1
    int 21h
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends




end start ; set entry point and stop the assembler.
ShadyA&B è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2009, 10:31   #3
umbescla
Member
 
Iscritto dal: Dec 2000
Città: emilia
Messaggi: 255
ciao ShadyA&B , vorrei iniziare a programmare in assembler Intel , che programmi , IDE o quantaltro utilizzi per programmare in assembler ?


grazie
umbescla è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
X fa marcia indietro: si adeguerà...
Framework e la crisi delle memorie: terz...
Doom è ovunque: perché il ...
NVIDIA aggiorna G-Sync Pulsar: migliorat...
Portatile gaming con RTX 5060 a 1.099€: ...
6G for dummies: al MWC 2026 il CEO di Qu...
Le RAM tornano a salire di prezzo: quest...
5 robot aspirapolvere bestseller al mini...
A 59 anni il mio primo hackathon: dieci ...
Come sfruttare le Offerte di Primavera p...
NVIDIA promette un salto enorme: path tr...
Il meglio di Amazon in 23 articoli: supe...
Questo portatile MSI da 16" OLED 38...
DirectX, prove tecniche di futuro: machi...
Le analisi di ALMA sulla cometa interste...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v