汇编语言Test al 80h 是实现什么功能的 Test al 80h 什么意思,具体怎么实现的?

\u6c47\u7f16\u8bed\u8a00TEST AL,40H\u662f\u5b9e\u73b0\u4ec0\u4e48\u529f\u80fd\u7684

\u6c47\u7f16\u8bed\u8a00TEST AL, 40H \u662f\u6d4b\u8bd5\u6307\u4ee4
\u53732\u4e2a\u64cd\u4f5c\u6570 AL\u5185\u5bb9\u548c\u7acb\u5373\u657040H \u6309\u4f4d\u8fdb\u884c\u903b\u8f91\u4e0e\u64cd\u4f5c
\u5373 \uff08A)^1000 000=D7000 0000 \u7ed3\u679c\u53ea\u4fdd\u7559\u4e86\u7d2f\u52a0\u5668\u7684\u7b2c7\u4f4d \u5373D7 \u5176\u4f59\u4f4d\u5747\u88ab\u5c4f\u853d\u6389\u4e86
\u4e5f\u5c31\u662f\u8981\u6d4b\u8bd5\u7d2f\u52a0\u5668\u7684\u7b2c7\u4f4d \u5373D7
\u5f53\u7ed3\u679c\u4e3a0 \u5219\u8bf4\u660e \u7d2f\u52a0\u5668\u7684\u7b2c7\u4f4d \u5373D7=0
\u5426\u5219 \u5219\u8bf4\u660e \u7d2f\u52a0\u5668\u7684\u7b2c7\u4f4d \u5373D7=01

\u5475\u5475 \u6ee1\u610f \u5c31\u9009\u6ee1\u610f\u56de\u7b54\u554a

\u7528TEST AL\uff0c80H\u53ef\u68c0\u6d4bAL\u4e2d\u7684\u5185\u5bb9\u662f\u6b63\u6570\u8fd8\u662f\u8d1f\u6570\uff0c\u6267\u884c\u540e\uff0c\u82e5ZF=1\uff0c\u4e3a\u6b63\u6570\uff0c\u5426\u5219\u4e3a\u8d1f\u6570

检测AL寄存器最高位是否为1。

执行这条指令时,将AL中的值与立即数80H(10000000B)执行按位与运算。运算结果反映在标志寄存器上:ZF反映结果是否为零;SF反映AL的最高位是否为0

注意两点:



测试al寄存器最高位是否为1,为1则zf标志位不为1,为零则zf标志位为1,其实就是将al中的值与80h进行与操作,但不改变原值

与运算,不保留结果,只改变标志位。

mov al, 10100011B
mov bl, 80H
xor cl, cl
mov dl, 1
next:
test al, bl
jz ifZero
add cl, dl
ifZero:
shr bl, 1
shl dl, 1
jnc next

貌似是位的倒置,cl里是结果。

PS:我也正在学,有不对的地方请多多指教:-)。

if( ah & 80h )

扩展阅读:8values测试中文版链接 ... 汇编语言 $ 符号 ... test al 01h ... we test 智能测试 ... test al 80h ... mybatisplus多表查询分页 ... 8values test ... 汇编语言 机器 面向 ... my passport 移动硬盘 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网