Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
EYES_ONLY

Assembly

Recommended Posts

eu preciso fazer 5 programinhas...

no 1º eu tenho q fazer o programa ler caracteres do teclado ate digitar o enter e depois imprimir na tela os caracteres na ordem inversa...

no 2º eu tenho q fazer a mesma coisa só q usando pilha...

no 3º eu tenho q tirar a media de 3 numeros de 0 a 9 e apresentar o resultado na tela...

no 4º a mesma coisa q o anterior só q com numeros de 0 a 99

e no 5º, elaborar um programa que leia valores inteiros de 2 matrizes 2X2 e apresentar na tela a matriz multiplicação delas...

valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mensagem editada.

Motivo: conteúdo agressivo.

Gostaria de lembrar que é dever de todos os participantes do Fórum tratarem-se respeitosamente, evitando qualquer tipo de agressão.

Atitudes com esta fogem totalmente ao objetivo deste Fórum, que é o de ajudar e instruir participantes que tem dúvidas sobre assuntos relacionados à hardware/software.

À quem não puder ajudar, peço a gentileza de não atrapalhar.

Grato pela compreensão e cooperação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz o primeiro exercicio os outros basta alterar umas coisinhas neste codigo

.model small

.stack

.data

Ins_Frase db "INSIRA UMA FRASE (MAXIMO 10 CARACTERS)",0

string db 6 DUP (?)

Invertida db "INVERTENDO A FRASE FICA:",0

.code

.startup

;----------ESCREVE NO ECRAN "INSIRA UMA FRASE MAXIMO 10 LETRAS"-------------------

mov si,offset Ins_Frase

FRASE:

mov al,[si]

cmp al,0

je FIM_FRASE

inc si

mov ah,14

int 10h

jmp FRASE

FIM_FRASE:

;-------------------------------------------------------------------

;-----------METE O CURSOR NA 3¦LINHA E NA 1¦COLUNA-----------------

mov dh,2

mov dl,0

mov ah,2

int 10h

;------------------------------------------------------------------

;-----------------------FRASE INSIRIDA--------------------------------------

mov si,offset string

mov cx,0    ;contador de teclas

LER_TECLAS:

mov ah,00       ;espera que um caracter seja primido

int 16h

cmp al,13           ;se for o enter

je FIM_LER_TECLAS   ;se for igual

cmp al,8     ;verifica se o caracter ‚ o backspace

je APAGA_CHAR       ;se for temos que apagar o caracter

cmp cx,9            ;se o contador tiver a 5(caracteres)

já beep      ;da um beep

inc cx      ;mais um caracter

mov [si],al        ;mete o caracter na string

inc si

 

mov ah,14        ;imprime o caracter no ecran

int 10h

jmp LER_TECLAS

APAGA_CHAR:

cmp cx,0   ;verificamos se já foi inserido algum caracter

je beep    ;se não da um beep

dec si 

dec cx     ;decrementa um valor ao contador

mov al,8   ;para recuar uma posi‡ao o cursor

mov ah,14

int 10h

  

mov al,32  ;mete um espa‡o em branco

mov ah,14

int 10h

mov al,8   ;para recuar uma posi‡ao o cursor

mov ah,14

int 10h

jmp LER_TECLAS     ;volta po inicio a espera de novo caracter

beep:

mov al,7

mov ah,14

int 10h

jmp LER_TECLAS

FIM_LER_TECLAS:

mov al,0

mov [si],al

;------------------------------------------------------------------------

;------------------METER OS CARACTERS NA STACK---------------------------

mov si,offset string

mov ax,0

push ax

PUSH_STACK:

mov ax,[si]

cmp al,0

je FIM_PUSH_STACK

push ax

inc si

jmp PUSH_STACK

FIM_PUSH_STACK:

;-------------------------------------------------------------------

;-------TIRA DA STACK E METE NA STRING(FICANDO TROCADA A INICIAL-----

mov si,offset string

mov ax,0

POP_STACK:

pop ax

cmp al,0

je FIM_POP_STACK

mov [si],al

inc si

jmp POP_STACK

FIM_POP_STACK:

mov [si],0

;-------------------------------------------------------------------

;-----------METE O CURSOR NA 5¦LINHA E NA 1¦COLUNA-----------------

mov dh,4

mov dl,0

mov ah,2

int 10h

;------------------------------------------------------------------

;----------ESCREVE NO ECRAN A STRING já ALTERADA-------------------

mov si,offset Invertida

INVERTIDA2:

mov al,[si]

cmp al,0

je FIM_INVERTIDA2

inc si

mov ah,14

int 10h

jmp INVERTIDA2

FIM_INVERTIDA2:

;-------------------------------------------------------------------

;-----------METE O CURSOR NA 5¦LINHA E NA 1¦COLUNA-----------------

mov dh,6

mov dl,0

mov ah,2

int 10h

;------------------------------------------------------------------

;----------ESCREVE NO ECRAN A STRING já ALTERADA-------------------

mov si,offset string

TROCADA:

mov al,[si]

cmp al,0

je FIM_TROCADA

inc si

mov ah,14

int 10h

jmp TROCADA

FIM_TROCADA:

;-------------------------------------------------------------------

.exit

end

Espero ter ajudado, alguma duvida poste aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×