Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/10/2011, 17:31
azzollinicamilo24
 
Fecha de Ingreso: octubre-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 1
Pregunta Programacion en Arquitectura del Computador! ayud...

Buenas tardes amigos, quisiera saber quien me puede ayudar con este problema q tengo, estoy estudiando para un parcial que tengo la semana q viene e eche varios ejercicios, pero este no se como hacerloo :s no entiendo q tengo q hacer... necesito saber quien me puede ayudar, por favor es urgente estoy traumado.. gracias, aqui se los dejo con todo el enunciado..


Usando el conjunto de instrucciones del (Instruction Set) (NOTA 3), programe el siguiente ejercicio:
Defina una tabla “TEXT” que contiene un texto codificado en código ASCII (NOTA 2), con una longitud de 11 bytes (“Hello World”). El objetivo es sacar en forma serie (un bit a la vez) cada uno de los bytes del texto utilizando para ello el bit 0 del puerto 0 (OUT.0 en adelante), con un retardo apropiado (T) entre un bit y el siguiente.
El formato a utilizar requiere además que antes de sacar el primer bit de cada byte (el bit 0), se mantenga el bit OUT.0 en 0 durante un tiempo T, y que luego de sacar el último bit de cada byte (el bit 7), se mantenga el bit OUT.0 en 1 por un tiempo T.

Para el retardo T, puede indistintamente utilizar el contador de milisegundos presente en el puerto 1 (utilice un valor de 20 milisegundos), o cargar una variable de tipo byte en 0 e incrementarla hasta que valga cero nuevamente.
(NOTA 1) Para la descripción de los estados del secuenciador, utilice el siguiente formato:
State TS_Enable1 TS_Enable2 ALU_Function Clock1 Clock2 Clock3 Clock4 Next State Description

(NOTA 2) American Standard Code for Information Interchange, una forma de codificar caracteres alfanuméricos en binario. Algunos ejemplos:
“1” 0011 0001 31h
“b” 0110 0010 62h
“B” 0100 0010 42h
(NOTA 3) Instruction Set
Opcode (Hex) Flags Bytes
LD A,@Addr 0000 0000 00 2 A<-mem(Addr)
LD @Addr,A 0100 0000 40 2 mem(Addr)<-A

LD A,&Addr 1000 0000 80 2 A<-mem((Addr))
LD &Addr,A 1100 0000 C0 2 mem((Addr))<-A

AND A,@Addr 0000 0001 01 Z 2 A<-A & mem(Addr)
AND @Addr,A 0100 0001 41 Z 2 mem(Addr)<-A & mem(Addr)

OR A,@Addr 0000 0010 02 Z 2 A<-A | mem(Addr)
OR @Addr,A 0100 0010 42 Z 2 mem(Addr)<-A | mem(Addr)

XOR A,@Addr 0000 0011 03 Z 2 A<-A ^ mem(Addr)
XOR @Addr,A 0100 0011 43 Z 2 mem(Addr)<-A ^ mem(Addr)

ADC A,@Addr 0000 0100 04 Z,C 2 A<-A + mem(Addr) + Carry
ADC @Addr,A 0100 0100 44 Z,C 2 mem(Addr)<-A + mem(Addr) + Carry

INP A,@Addr 0000 0101 05 2 A<-port(Addr)
OUT @Addr,A 0100 0101 45 2 port(Addr)<-A

JMP Addr 0000 0110 06 2 pc<-Addr
JMP &Addr 1000 0110 86 2 pc<-mem(Addr)
JP Z,Addr 0000 0111 07 2 If Z, pc<-Addr
JP NZ,Addr 0000 1000 08 2 If /Z, pc<-Addr
JP C,Addr 0000 1001 09 2 if C, pc<-Addr
JP NC,Addr 0000 1010 0A 2 If /C, pc<-Addr

CALL Addr 0000 1011 0B 2 sp--, mem(sp)<-pc, pc<-Addr
RET 0010 1100 2C 1 pc<-mem(sp), sp++

LD A,Const 0000 1101 0D 2 A<-constant
STC 0010 1110 2E C 1 set Carry flag (C=1)
CLC 0010 1111 2F C 1 clear Carry flag (C=0)

PUSH A 0011 0000 30 1 sp--, mem(sp)<-A
POP A 0011 0001 31 1 A<-mem(sp), sp++
PUSH F 0011 0010 32 1 sp--, mem(sp)<-Flags
POP F 0011 0011 33 Z,C 1 Flags<-mem(sp), sp++

INC @Addr 0101 0100 54 2 mem(Addr)++
DEC @Addr 0101 0101 55 Z 2 mem(Addr)--

SHL @Addr 0101 0110 56 Z,C 2 mem(Addr)<<1, C=bit7, bit0=0
SHR @Addr 0101 0111 57 Z,C 2 mem(Addr)>>1, C=bit0, bit7=0