易码技术论坛

 找回密码
 加入易码
搜索
楼主: 亚森罗宾

EMAX两周岁庆祝活动----灌水嘉年华,盖楼拿奖励

 关闭 [复制链接]
发表于 2006-8-28 21:39:53 | 显示全部楼层
灵魂附身~~~~~~
发表于 2006-8-28 21:39:54 | 显示全部楼层
.EOR--寄存器与累加器相异或,结果送累加器  A≮M→A
  异或的功能主要就是求补码,加密等.

  先说明下异或是怎么回事,什么是 "相同出0,不同出1"

  这里我们要把立即数7F,40进行异或运算,过程是这样的

  1.先把7F,40转化为二进制形式

  2.然后如果相同的位的值都不相同,那么该位为1,否则为0

(HEX) 7F  (BIN) 0 1 1 1 1 1 1 1   (EOR)


--------------------------------------------------------------------------------

(HEX) 40  (BIN) 0 1 0 0 0 0 0 0

(HEX) 3F  (BIN) 0 0 1 1 1 1 1 1

 

  所以我们要求反码,只要将该数和FF进行异或运算就可以了.

 

例2: 把地址3000-30FF的数据加密与解密

   先说明下为什么异或运算可以对数据进行加密,异或运算有一个特性:

   一个操作数(这里设为D1),和另外一个操作数(这里设为D2)进行异或运算,结果为D3

  表达式是这样的 D1 EOR D2 = D3

  然后如果我们将D3 再和D2进行异或运算,结果一定为D1,这就是加密的依据.

  所以我们要对某段数据进行加密时,只要使改段数据均和某个数进行异或运算,解密时再把加密的数据再和该数进行

异或运算即可,这里的某个数我们成为密匙,也就是说,一个人要解密,他必须得到密匙才能解密.
发表于 2006-8-28 21:40:09 | 显示全部楼层
灵魂附身~~~~~~
发表于 2006-8-28 21:40:13 | 显示全部楼层
//addr  :代表8位地址   addr16:代表16位地址    data  :立即数

[置标志位指令]

1. CLC--清除进位标志      0→C  机器码 18    √

2. SEC--置进位标志C       1→C  机器码 38    √

3. CLD--清除十进制运算标志D  0→D  机器码 D8    ×

4. SED--置十进制运算标志D   1→D  机器码 F8    ×

5. CLV--清除溢出标志V      0→V  机器码 B8

6. CLI--清除中断禁止指令I   0→I  机器码 58    √

7. SEI--置位中断禁止标志I   1→I  机器码 78    √

 

  说明:上面的指令中,用的比较多的是指令 CLC,SEC,CLI,SEI,这些指令也没有什么好讲的

只是有两点要注意:

1.如果你在一个程序中用了 SEI 指令,那么程序结束前一定要用 CLI 指令,否则会死机.

2.指令 SED 在文曲星中似乎不能用,我每次用都会死机.也不知道是怎么回事,大家暂时也别用,CLD倒是可以用,不过好象没有用

的必要,所以这两条指令我看可以去掉.
发表于 2006-8-28 21:40:25 | 显示全部楼层
我哭啊。。。。。。。。玩跑跑。
发表于 2006-8-28 21:40:42 | 显示全部楼层
我哭啊。。。。。。。。玩跑跑。
发表于 2006-8-28 21:40:44 | 显示全部楼层
//比较指令

1. CMP--累加器和存储器比较

符号码格式 指令操作码 寻址方式
CMP ($addr,X) C1 先变址X后间址
CMP $addr C5 零页寻址
CMP #$data C9 立即寻址
CMP $addr16 CD 绝对寻址
CMP ($addr),Y D1 后变址Y间址
CMP $addr,X D5 零页X变址
CMP $addr16,Y D9 绝对Y变址
CMP $addr16,X DD 绝对X变址

该指令也是做减法操作,将寄存器的内容减去存储器的内容,但它和减法指令有2点区别:

  一是借位标志C不参加运算,所以在用CMP指令不必加指令SEC

  二是减法的结果不送入寄存器A

该指令运行后,会影响标志位 C,Z,N.我们在实际中尤其要注意它是如何影响标志位C和标志位Z

  若执行指令CMP后,C=1表示无借位,即A》M

  若执行指令CMP后,C=0表示有借位,即A<M

  若执行指令CMP后,Z=1表示A=M
发表于 2006-8-28 21:40:56 | 显示全部楼层
500无望
发表于 2006-8-28 21:40:58 | 显示全部楼层
军训其实不错呢。
发表于 2006-8-28 21:41:28 | 显示全部楼层
占个楼。。。
发表于 2006-8-28 21:41:36 | 显示全部楼层
明天继续
发表于 2006-8-28 21:41:46 | 显示全部楼层
啊。。。累啊。。。
同意楼上。。。
发表于 2006-8-28 21:42:07 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
发表于 2006-8-28 21:42:08 | 显示全部楼层
//移位指令

     2000DA #$20        //把立即数20送累加器A

     2002:ASL            //累加器A的内容算术左移

     2003:STA $2100        //把累加器A的内容送地址2100

     2006:ASL $2100        //地址2100的内容算术左移

     2009DA $2100        //地址2100的内容送累加器A

     200C:RTS            //程序结束
发表于 2006-8-28 21:42:11 | 显示全部楼层
我闪!!
发表于 2006-8-28 21:42:34 | 显示全部楼层
2.右移指令LSR


3. 循环左移指令ROL

符号码格式 指令操作码 寻址方式
ROL 2A 累加器寻址
ROL $data 26 零页寻址
ROL $addr16 2E 绝对寻址
ROL $addr,X 36 零页X变址
ROL $addr16,X 3E 绝对X变址

ROL的移位功能是将字节内容连同进位C一起依次向左移1位
指令系统贴完了就闪。。。
发表于 2006-8-28 21:42:37 | 显示全部楼层
再闪
发表于 2006-8-28 21:42:52 | 显示全部楼层
4. 循环右移指令ROR
ROR 和 ROL作用相反

ROR的移位功能是将字节内容连同进位C一起依次向右移1位
发表于 2006-8-28 21:42:58 | 显示全部楼层
500了
 楼主| 发表于 2006-8-28 21:42:58 | 显示全部楼层
无意义的复制粘贴 程序代码,文章,广告的,是主要的删帖对象.
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-5-12 07:36 , Processed in 0.014872 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表