8088汇编里的左移指令SHL,实验里这样用的:SHL AX,4,想把AX左移四位,可是书上说位数超过一要用CL啊,为什么直接写4呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 00:40:44

8088汇编里的左移指令SHL,实验里这样用的:SHL AX,4,想把AX左移四位,可是书上说位数超过一要用CL啊,为什么直接写4呢?
8088汇编里的左移指令SHL,实验里这样用的:SHL AX,4,想把AX左移四位,可是书上说位数超过一要用CL啊,为什么直接写4呢?

8088汇编里的左移指令SHL,实验里这样用的:SHL AX,4,想把AX左移四位,可是书上说位数超过一要用CL啊,为什么直接写4呢?
8086/8088的移位指令中,移位位数确实只能用1或CL.
但286等后来的CPU,移位指令可以直接用大于1的数字了.类似的指令还有可以PUSH 1234H这样在PUSH指令中使用立即数.
除了DEBUG程序和较低版本的汇编程序外,现在常用的MASM 6 或TASM 3 汇编以及Turbo Debugger 等调试器都能识别并支持286的指令,因而可以允许使用SHL AX,4这样的格式.