[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰 - 基本指令 | 4. EXG 指令
注意:本文经过原作者授权转译,转载请标明出处
原文地址:http://mrjester.hapisan.com/04_MC68/Sect02Part04/Index.html
条件允许建议阅读原文,网上非中文资料还是较多,当作锻炼英文岂不美哉
翻译若有不足之处欢迎批评指正
译文:
"美德值千金" ---- 柏拉图 (Plato, 427-347 BC),古希腊伟大的哲学家
简介
EXG (交换) - 交换两个寄存器
这条指令能把两个数据寄存器或是地址寄存器里面的长字
内容互相交换
例子
exg.l d0, d1
- 如果
d0
的内容是00000000
,d1
的内容是11111111
,指令执行后,d0
的内容会变成11111111
,而d1
的内容会变成00000000
- 如果
d0
的内容是01234567
,d1
的内容是FFEEDDCC
,指令执行后,d0
的内容会变成FFEEDDCC
,而d1
的内容会变成01234567
- 如果
d0
的内容是ABCB9989
,d1
的内容是00000100
,指令执行后,d0
的内容会变成00000100
,而d1
的内容会变成ABCB9989
嗯,差不多就是这样,它和swap
指令一样简单。当然你可以把它用在地址寄存器上:
exg.l a0, a1
exg.l d4, a6
exg.l a2, d2
这条指令只能用来交换寄存器的长字
内容,字
或是字节
都是不支持的 (吃惊,问题来了,既然没有 exg.w 或是 exg.b 的写法,exg.l 为什么不干脆只写作 exg 呢?)
目录
上一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰 - 基本指令 | 3. SWAP 指令
下一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 贰 - 基本指令 | 5. CLR 指令