跳转表AL为何需要左移1位
根据AL(1<=AL<=8)中的值,跳转到相应的标号(SUB1,SUB2,...,SUB8)处执行各自的过程
===============================
请教DEC AL 当AL=1时为何这里自减1,为何还要再执行左移1位SHL AL,1
数据段
TABLE DW SUB1
DW SUB2
DW SUB3
...
DW SUB8
代码段
DEC AL
SHL AL,1
MOV AH,0
MOV SI,AX
LEA BX,TABLE
JMP WORD PTR[BX+SI]
SUB1:...
...
SUB2:...
...
SUB8:...===============================
请教DEC AL 当AL=1时为何这里自减1,为何还要再执行左移1位SHL AL,1
...全文
相关推荐
初学者 汇编学习 入门帮助
**位测试和循环**:`not al`对AL进行按位非,`rol al,cl`进行循环左移,`cmp al,0ffh`比较AL和FFh,`jz next`如果AL全为1则跳转,否则清零AL。
8088汇编手册8088汇编手册
- `XLAT` 使用基址寄存器(BX)指向的表中的值来修改AL寄存器的值。- **示例**: - `XCHG AX, BX` 交换AX和BX寄存器中的值。
汇编速查手册.txt
- **XLAT**:查找表指令,用BX寄存器指向的一个256字节表中查找值,并根据AL寄存器中的索引值(0-255或0-FFH)进行查找,结果存放在AL中。#### 二、输入/输出指令1.
汇编指令表与花指令大全
- **注意**:对于8位端口,可直接用寄存器(如AL);对于16位端口,则需要使用DX寄存器来指定端口号。#### 3. 地址计算指令用于计算和处理地址。
汇编速查手册~~~~~
- 示例:`XLAT`(根据AL中的值在BX指向的表中查找对应的值,并将结果存入AL)#### 二、输入/输出指令1. **输入输出指令** - **IN**:从指定端口读取数据到寄存器。


