ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Examen Da Assembler


Enviado por   •  15 de Mayo de 2015  •  513 Palabras (3 Páginas)  •  177 Visitas

Página 1 de 3

NOMBRE: mmmmmmmmmmm

FECHA: 08/05/14

POTENCIAS DE DOS USANDO SOLO SUMAS HASTA LA POTENCIA 16

La lógica que se sigue es que debemos obtener:

1 2 4 8 16 32 64 .......................... 32768 65536

y si tenemos un dato a que iniciamos en 1 entonces

1+1 2+2 4+4 8+8 16+16 32+32 ........................ . 32768+32768

vemos que la potencia deseamos obtener es la el doble del anterior en otras palabras sumamos dos veces la anterior potencia

SOLUCION

include libgen.asm

.model small

.stack 256

.data

a dw 1

cad db 3 dup("$")

resultado db 55,0,54 dup("$")

nro dw 0

base dw 10

; cad introducida por teclado es una cadena y lo debemos convertir en número natural

;a es dw 32 pero internamente se verá como 3h2h y debemos llevarlo a numero 30h unir 32h=30h32h

;resultado-->3h2h-->3h+30h=33h, 2h+30h=32h-->30h32h

.code

inicio

leer_cad cad

lea si,[cad+2]

call cad_real

enter

mov cx,nro

for:

mov bx,a

add bx,bx

mov a,bx

loop for

mov ax,a

lea si,resultado

call real_cad

mostrar_cad resultado

final

;Procedimiento para llevar una cadena a un número real

cad_real Proc Near

sal_reg

MOV AX,0000h

MOV nro,AX

XOR BX,BX

while:

MOV BL,byte PTR [SI]

MOV AX,nro

CMP BL,13

JE fin

SUB BL,30h

MUL base

ADD AX,BX

MOV nro,AX

INC SI

JMP while

fin:

res_reg

RET

cad_real EndP

;procedimiento para llevar un numero real a una cadena

real_cad Proc Near

sal_reg

XOR CX,CX

while1:

...

Descargar como (para miembros actualizados)  txt (2.6 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com