,我在这方面有困难,没有运气,并将感谢任何帮助!!谢谢
Hamming码是一种特殊的编码和解码信息技术,用于实现错误检测和纠错。理查德·汉明于1951年发表了他的著作。过去硬件的高成本使得这项技术很昂贵,因此不实用。一个CRAY计算机设计发布到市场,使用单一的纠错技术,如汉明文件所描述的。
编码
汉明码的一个重要特点是,算法的所有组成部分在数学上都是健全和实用的。编码过程是根据要发送的信息计算“偶数奇偶校验”比特,并将这些奇偶校验比特与所发送的信息一起发送。如果信息包含4位(abcd),则需要三个奇偶校验位(rst)。这些奇偶校验位称为校验位。然后将编码的消息结构为:
position 7 6 5 4 3 2 1
bit a b c r d s t其中:
r is set to create even parity for bits 7, 6, 5 and 4;
s is set to create even parity for bits 7, 6, 3 and 2;
t is set to create even parity for bits 7, 5, 3 and 1.您将在内存中对a、b、c和d信息位所在的字节的内容进行编码,如下所示:
xxxxabcd例如,假设您有以下内存配置,您的任务将是组成编码的字节,如下所示:
存储器编码消息
2274 xxxx1011 01010101
2275 xxxx1001 01001100
2276 xxxx0011 00111110发布于 2018-04-25 18:58:12
简单的答案是使用查找表(LUT)进行编码(以及解码)。
START:
LEA INPUT,A1
LEA OUTPUT,A2
LEA ENCODE,A0
ENCLOOP:
MOVE.B (A1)+,D0
BMI.S EXIT
AND.W #$0F,D0
MOVE.B (A0,D0.W),D1 ; encode byte
MOVE.B D1,(A2)+ ; save it
BRA.S ENCLOOP
EXIT:
SIMHALT
; change table to match your Hamming scheme
ENCODE: DC.B $2E,$AD,$14,$97,$B2,$31,$98,$1B
DC.B $E4,$67,$CE,$4D,$68,$EB,$52,$D1
INPUT: DC.B $0B,$09,$03,$FF
OUTPUT: DS.B 3https://stackoverflow.com/questions/49332725
复制相似问题