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

Examen Da Assembler

qci27128415 de Mayo de 2015

513 Palabras (3 Páginas)210 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:

CMP AX,0

JE fin1

XOR DX,DX

DIV base

PUSH DX

INC CX

JMP while1

fin1:

while3:

CMP CX,0

JE fin3

POP BX

ADD BX,30h

MOV [SI],BX

DEC CX

INC SI

JMP while3

fin3:

res_reg

RET

real_cad EndP

end

Nota: Los macros INICIO, FINAL, LEER_CAD, MOSTRAR_CAD, SAL_REG y RES_REG están en otro archivo denominado libgen.asm

librería que usaremos

INICIO MACRO

MOV AX,@DATA

MOV DS,AX

ENDM

FINAL MACRO

MOV AH,4CH

INT 21H

ENDM

MOSTRAR_CAD MACRO CAD

PUSH AX

PUSH DX

MOV AH,09H

LEA DX,CAD

INT 21H

POP DX

POP AX

ENDM

LEER_CAD MACRO CADENA

PUSH DX

PUSH AX

MOV AH,0AH

LEA DX,CADENA

INT 21H

POP AX

POP DX

ENDM

SAL_REG MACRO

PUSH AX

PUSH BX

PUSH CX

PUSH DX

PUSH SI

PUSH DI

ENDM

RES_REG MACRO

POP DI

POP SI

POP DX

POP CX

POP BX

POP AX

ENDM

ENTER MACRO

PUSH AX

PUSH DX

MOV DL,13

MOV AH,02

INT 21H

MOV DL,10

INT 21H

POP DX

POP AX

ENDM

...

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