为什么6502单片机没有算术右移?

uzu*_*aki 4 assembly arithmetic-expressions 6502 instruction-set bit-shift

我正在尝试了解旧微控制器的指令集,尤其是 6502。

可以在此处找到的指令集文档列出了两个移位指令(除了旋转指令之外):

ASL--算术左移

LSR--逻辑右移

为什么没有算术右移逻辑左移指令?

我知道可以简单地向其自身添加一个数字,以逻辑地将其向左移动,但专用指令会更方便、更快,即使它只是这样做。但是缺少算术右移指令对我来说没有意义。

Kar*_*l S 5

逻辑左移与算术左移相同,因此无需区分两者。许多其他平台的汇编程序将 LSL 和 ASL 助记符视为同义词(例如 ARM)。

对于缺乏算术右移的情况,您可以随时执行 CMP #80/ROR A 对累加器进行算术右移。