Micro

Solo disponible en BuenasTareas
  • Páginas : 6 (1270 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de marzo de 2011
Leer documento completo
Vista previa del texto
1.-lee cadena de caracteres formada por tres dígitos,convierte a numero y determino si es impar.
***************************
datos segment
texto db "Ingrese Cadena de 3 digitos: $"
texto1 db "Numero par: $"
texto2 db "Numero impar: $"
jhon db 50h dup(?)
datos ends
Programa segment
Assume cs:Programa ds: datos
inicio:
mov ax,datos
mov ds,axmov dx,offset texto
mov ah,09h
int 21h
mov dx,offset jhon
mov si,dx
mov byte ptr[si],50h
mov ah,0ah
int 21h
mov ah,2h
mov dl,0ah
int 21h
mov dl,0dh
int 21h
mov cx,0
mov bx,0
mov ax,0
mov ch,3add bx,2
Bucle:
cmp ch,0h
je compara
mov ah,byte ptr[si+bx]
inc bx
dec ch
jmp Bucle
compara:
mov bh,2h
mov al,ah
mov ah,0h
div bh
cmp ah,0h
je fin
mov dx,offset texto2
mov ah,09h
int 21hint 20h
fin:
mov dx,offset texto1
mov ah,09h
int 21h
Programa ends
end inicio
*************************
2.-cadena palíndromo.-
********************************
datos segment
mensaje1 db "Escriba Cadena : ",0ah,0dh,"$"
mensaje2 db "Palindormo $"
mensaje3 db " No Palindromo $"
Cad1 db 50h dup(?)

datos ends

Programasegment
Assume cs:Programa ds:datos
Inicio: mov ax,datos
mov ds,ax
mov dx,offset mensaje1 ;imprime mensaje1
mov ah,09h
int 21h
;SI yDI, que son también punteros. SI y DI los utilizaremos a menudo para copiar bytes de un lado a otro, etc.
mov dx,offset Cad1 ; "offset cad1" reserva memoria (direccion)para la nueva cadena a a guardar
mov si,dx ; "si" para direccionamiento indexado.
mov byte ptr[si],50h ;asigna 50 octetos al contenido de la direccion "si"
mov ah,0ah ;funcio para direccion de area de reccepcion o buffer se va a guardar la palabra ingresada por el usuario
int 21h ;ejecuta lo de arriba asigna area o buffer
mov ah,2h;esto es para q imprima lo q contiene dl
;salto de linea
mov dl,0ah ; salto de linea
int 21h
mov dl,0dh ;retorna al carro
int 21h ;
mov bl,2h
mov al,byte ptr[si+1];Y ahora "al" vale el tamaño de la cadena
sub al,1 ;
add al,bl;
mov ah,0 ;para completar el registroax ya q el registo "al" tiene un valor[si+2]; registro "ah" tendria todos sus bits 0; AX=Ah Al
mov di,ax ;"di" direccionamiento indexado ;
bucle: ;bx esto vale 2
;di contiene la direccion del tamaño de cadena
cmp bx,di ;ds "datos etiqueta " apunta ala direccion de donde empiesa cadena junto con bx
ja palindromo;[si+2] primer caracter
mov ch,byte ptr[si+bx] ;obtiene la direccion del primer caracter de la cadena
xchg bx,di;intercanbia sus direcciones
;aqui bx contiene el tamaño de cadena
;di contiene a bx
mov cl,byte ptr[si+bx] ; direccion del ultimo caracter
cmp ch,cl
jne difer
xchg bx,di ;vuelvena retomar sus verdaderos valores
inc bx
dec di
jmp bucle
Palindromo:
mov dx,offset mensaje2
mov ah,9h
int 21h
jmp Fin
difer: mov dx,offset mensaje3
mov ah,9h
int 21h
Fin:
int 20h
Programa ends
end inicio
************************
3.cuenta palabra.-...
tracking img