ARQUI

A. Elaborar un programa que permita ingresar por teclado 10 n�meros. Verificar cuantos de los numero ingresados son n�me

Views 126 Downloads 3 File size 36KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

A. Elaborar un programa que permita ingresar por teclado 10 n�meros. Verificar cuantos de los numero ingresados son n�meros m�ltiplos de 3. B. Elaborar un programa que permita ingresar por teclado 10 n�meros. Verificar cuantos de los numero ingresados son n�meros primos y m�ltiplos de 3. C. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total y verificar si la suma supera 20. Mostrar los resultados en ambos casos con un mensaje. D. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total, promedio y verificar si dicho promedio es m�nimo 7. E. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total de los n�meros mayores a 5. F. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total de los n�meros mayores a 5. G. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total de los n�meros pares mayores a 5. H. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total de los n�meros impares mayores a 5. I. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total de los n�meros pares menores a 5. J. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total de los n�meros impares menores a 5. K. Elaborar un programa que permita ingresar por teclado 10 n�meros. Calcular la suma total, de los n�meros menores a 5. L. Elaborar un programa que permita generar la siguiente serie: X = 1 / 1 + 1 / 2 + 1 / 3 + 1 / 4 + 1 / 5 + 1 / 6 + 1 / 7 + 1 / 8 + 1 / 9 M. Elaborar un programa que permita generar la siguiente serie: X = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 N. Elaborar un programa que permita generar la siguiente serie: X = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 �. Elaborar un programa que permita generar la siguiente serie: X = 2 / 1 + 4 / 2 + 6 / 3 + 8 / 4 + 10 / 5 + 12 / 6 + 14 / 7 + 16 / 8 + 18 / 9 O. Elaborar un programa que permita generar la siguiente serie: X = 2 / 3 + 4 / 6 + 6 / 9 + 8 / 12 + 10 /1 5 + 12 / 18 + 14 / 21 + 16 / 24 + 18 / 27 P. Elaborar un programa que permita generar los primeros 12 t�rminos de la tabla de multiplicar del 4. Ejemplo: 4 x 1 = 4 � 4 x 12 = 48 Q. Elaborar un programa que permita generar los primeros 12 t�rminos de la tabla de multiplicar del 3. Ejemplo: 3 x 1 = 3 � 3 x 12 = 36 CUENTA CARACTERES Hola bueno. Primero no se me da muy bien el asm, pero te dejo esto. Ojala te funcione. Si no te vas me avisas y le echo un vistazo model small .stack 64h .data cadena1 db 50 dup(' '),'$'; llena las cadenas con espacio msj1 db 'El numero de caracteres es:$' msj2 db 'Hola este programa cuenta caracteres de la cadena: $' .code .startup mov mov mov mov mov int

ah,06h ; peticion de recorrido de la pantalla al,00h ; indica la pantalla completa bh,17h ; attributos de color y fondo 7 blanco 0 negro cx,0000h ; esquina superior izquierda renglon columna dx,184fh ; esquina inferior derecha renglon columna 10h ; llamada a la interrupcion de video BIOS

mov mov mov int

ah,02 dx,0402h bh,00 10h

mov ah,09 ; Escribir cadena mov dx,offset msj2 int 21h mov bx,0000h lea SI,cadena1 ; llena a SI con la direccion del primer caracter de la cadena1 mov cx,50 ; inicio el registro del contador en 10 regresa: mov ah,07h ; Recoje por teclado un carater y lo coloca en AL sin eco int 21h ; ejecuta la funcion del DOS cmp al,13 ; Compara al con enter je termina ; salta solo si la tecla oprimida es enter mov [SI],al; copia el contenido de AL en el registro cuya direccion es igual al contenido de SI inc SI ; Incrementa en 1 el contenido de SI inc bx mov dl,al ; compia el contenido de dl en al mov ah,02h ; Funcion de mostrar por pantalla el contenido de dl int 21h ; ejecuta la funcion del DOS loop regresa ; En contenido de CX disminuye en 1 y salta a regresa termina: mov al,bl and ax,000fh and bx,00f0h shr bx,01 mov ah,bl cmp al,0ah jb dejar daa inc ah dejar: mov bl,al mov al,ah cmp al,0ah jb decena daa mov dx,31h decena: mov bh,al and bx,0f0fh or bx,3030h mov cx,bx mov mov mov int

ah,02 dx,0702h bh,00 10h

mov ah,09 ; Escribir cadena mov dx,offset msj1 int 21h mov mov mov int

ah,02 dx,071eh bh,00 10h

mov dl,ch mov dh,cl mov mov int mov mov int

ah,02 cx,01 21h ch,dh dl,ch 21h

.exit Primer programa para entender como utilizar los registros: ORG 100h mov ax, 10 ;AX=10 mov bx, 00F9h ;BX=0xF9 inc bx ;BX++ add ax, 4 ;AX=AX+4 mov cx,45 ;CX=45 sub cx,cx ;CX=CX-CX ret Utilizar Loop: ORG 100h MOV CX, 5 MOV BX, 1 MOV DL, 2 comienzo: MOV AX, BX MUL DX MOV BX, AX LOOP comienzo RET Potencia: name "potencia" ;8 chars DOS org 100h ;counter to 100h mov cx, num2 mov ax, num1 inicio: mov bx,num1 mul bx ;ax = ax * bx loop inicio ;c-mov num3,ax ;copiamos el resultado ret ;Variables "db" para byte y "dw" para word num1 dw 0Ah

num2 dw 03h num3 dw 0h Raiz cuadrada: org 100h siguiente: inc r mov ax, r mul ax cmp ax, m jbe siguiente ;(r*r) MENOR O IGUAL a m dec r ret ;Variables m dw 146 r dw 0 ;Al final debe ser r=sqrt(m). Arreglos: name "arreglo" org 100h ;un areglo se puede acceder a travez de [] mov cx, 9 ;cuantos elementos voy a recorrer, empezamos con el 9 inicio: mov si, cx mov dl, v[si] cmp dl, mayor jng siguiente: mov mayor,dl siguiente: loop inicio ret v db 1,32,64,32,98,12,5,21,91,38 mayor db 0 Saber si un numero es mayor: name "mayor" mov AX, 5 mov BX, 5 ;mov DX, AX ;CX el valor m�s grande entre AX Y BX ;AX-BX mayor a 0 sub AX,BX js A_MENOR_B mov CX,AX jmp FIN A_MENOR_B: mov CX,BX FIN: ;mov AX,DX ret Multiplicacion:

ORG 100h

MOV AL, 200 ; AL = 0C8h MOV BL, 4 MUL BL ; AX = 0320h (800) RET Interrupciones (Ejemplo de 21h): name "int01" org 100h mov ah, 1 ;Leer un caracter de la entrada estandar int 21h ;Llamada al sistema operativo (DOS) mov tecla, al mov ah, 2 ;imprime un simbolo a la consola mov dl, simbolo ;el caracter a mostrar, en este caso la E int 21h ;Llamada al DOS inc mov mov int

tecla ah, 7 ;NO imprime un simbolo a la consola dl, tecla ; 21h ;Llamada al DOS

ret ;Variables tecla db 0 simbolo db 45H ;ah que queres hacer ;ah = 1 guarda caracter en al ;ah = 2 escribe un caracter en la consola. El ascii del cacacter a imprimir se pone el dl ;AH = 7 es igual a el ah=2 pero el resultado no se ve en pantalla ;ah = 9 imprime una cadena en la consola. Considera el caracter $ como fin de cadena. ;La direccion de la cadena se expresa en DX Cadenas: org mov mov mov int ret msg

100h msg[2], 34H dx, offset msg ah, 9 21h db "hello world $"

Cambiar a may�sculas: name "int02" ORG 100H lectura: mov ah,7 int 21h mov tecla, al cmp al,13 jz fin: cmp tecla, 122 ;si tecla es mayor a 122 entonces ir a fin3 (tecla > 122) ja fin3 cmp tecla,96 ;si tecla no es mayor a 96 ir a fin3 (tecla