Ensamblador - Ayuda con programa

 
Vista:

Ayuda con programa

Publicado por Marcos (2 intervenciones) el 14/04/2007 11:11:06
Tengo un ejercicio no muy complicado que hacer en ensamblador, pero estoy comenzando con ese leguaje y no he logrado concatenar algo preciso.
Agradecería mucho si alguien me regalara 5 minutos y me ayudara a resolverlo, el ejercicio es el siguiente:

Acceder a un datos que está almacenado en la dirección 123Ah:0008 en una palabra de memoria dentro del segmento extra, y calcular lo siguiente:
a) Si los bits: 11, 9, 5 y 3 están a uno.
b) El número de bits a uno que tiene ese dato.
c) Si este dato es de paridad impar, debe saltar a una etiqueta que se llama FIN.

Atentamente,
Marcos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con programa

Publicado por microprocessor (46 intervenciones) el 14/04/2007 18:12:19
Aqui esta mi codigo:

En la direccion 123a:0008 me ha encontrado el numero 530f, lo que muestra en la pantalla:

El bit 03 esta activado
El bit 05 esta desactivado
El bit 09 esta activado
El bit 11 esta desactivado
Hay 07 bits activados
El numero de Bits Encendidos es de Paridad Impar, lo que significa que salta a FIN


Codigo fuente:
-Ocupa 512 bytes


org 100h

mov ax,123ah
mov bx,0008h
mov ds,ax
mov ax,[bx]
push cs
pop ds

call CheckBitsZ
call CountBitsE
call TCD
mov dx,CountB
mov ah,9
int 21h
mov ax,[CountN+1]
or ax,ax
jp NoFin
jmp FIN

;Codigo Para Paridad Par
NoFin:
mov ah,9
mov dx,PP
int 21h
ret

CheckBitsZ:
mov cl,3
mov word [Numb],"03"
call CheckBitZ
mov cl,5
mov word [Numb],"05"
call CheckBitZ
mov cl,9
mov word [Numb],"09"
call CheckBitZ
mov cl,11
mov word [Numb],"11"
call CheckBitZ
ret

CountBitsE:
mov cl,0
mov word [CountN],0

CountBitsEB:
call TestBit
jz CountBitsEZ
inc byte [CountN+1]

CountBitsEZ:
inc cl
cmp cl,16
jne CountBitsEB
ret

CheckBitZ:
push ax
call TestBit
jnz CheckBitZA

CheckBitZD:
mov ah,9
mov dx,BitZ
int 21h
mov ah,9
mov dx,BitD
int 21h
pop ax
ret

CheckBitZA:
mov ah,9
mov dx,BitZ
int 21h
mov ah,9
mov dx,BitA
int 21h
pop ax
ret

TestBit:
or cl,cl
jz TestBit0
push cx
mov bx,2
push ax
mov ax,1

TestBitB:
mul bx
dec cl
jnz TestBitB
mov bx,ax
pop ax
test ax,bx
pop cx
ret

TestBit0:
test ax,1
ret

TCD:
cmp byte [CountN+1],10
jb Return
sub byte [CountN+1],10
inc byte [CountN]
jmp TCD

Return:
add word [CountN],"00"
ret

FIN:
mov ah,9
mov dx,PI
int 21h
ret

times 100h-($-$$) db 0

BitZ db "El bit "
Numb db " $"
BitA db "esta activado",10,13,"$"
BitD db "esta desactivado",10,13,"$"
CountB db "Hay "
CountN db " "
CountT db "bits activados",10,13,"$"
PI db "El Numero de Bits Encendidos es de Paridad Impar, lo que significa que salta a FIN",10,13,"$"
PP db "El Numero de Bits es de Paridad Par, lo que significa que no salta a FIN",10,13,"$"

times 200h-($-$$) db 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con programa

Publicado por Marcos (2 intervenciones) el 18/04/2007 17:41:41
Muchas gracias colega....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con programa

Publicado por microprocessor (46 intervenciones) el 18/04/2007 20:04:57
Me ha costado un poco de tiempo, pero de nada

Si quieres otras cosas, dilo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con programa

Publicado por agustin (1 intervención) el 16/05/2015 23:22:02
hola que tal oyes lo que pasa es que necesito ayuda con un programa en esamblador mira nos e si me puedan ayudar

Haz un programa que establezca el bit de paridad par para una localidad de memoria de un byte llamada
dato. Si la suma de unos de los bits 0 a 6 es par pondra el bit 7 en cero y si la suma es non pondrá en el bit
7 un uno. mi correo es [email protected] se los agradeceria mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda conprograma en ensamblador tema macros.

Publicado por arthur (1 intervención) el 22/04/2007 22:19:19
que tal marcos bueno he manejado el lenguaje ensamblador , te puedo ayudar escribeme a mi correo para cualquier tema relacionado al assembler.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda conprograma en ensamblador tema macros.

Publicado por omar (1 intervención) el 16/05/2007 01:44:14
amigo me gustaria q me puedas dar unos concejos y si puedes me pases todo el set de isntrucciones del 8086............te lo agraedecere
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar