Ir ao conteúdo

Posts recomendados

Postado

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...

  • Curtir 1
Postado

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.

  • Curtir 1
Postado

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

  • Curtir 1
  • 15 anos depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...