8086汇编test指令学习

Test指令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。Test的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。

TEST AX,BX 与 AND AX,BX 命令有相同效果,只是Test指令不改变AX和BX的内容,而AND指令会把结果保存到AX中。

将两个操作数进行按位AND,设结果是TEMP,

SF = 将结果的最高位赋给SF标志位,例如结果最高位是1,SF就是1

看TEMP是不是0

如果TEMP是0,ZF位置1

如果TEMP不是0,ZF位置0

CF位置0

OF位置0

AF位是未定的,

SF位是符号位;

ZF位记录操作的结果是否是0;

PF位是奇偶校验位,如果结果低8位中1的个数是偶数,PF=1;否则PF=0;

emu8086,如下指令看一下情况,

十进制109的十六进制是6D,

二进制是如下,

标志位初始值,

执行完mov之后,

如上执行test之后标志位都不会发生变化;SF也没变,SF是符号位;

如下的数字PF变了;

如下的SF变了;

如果是-109,SF也会变;

有时间继续;

相关推荐
白太岁1 天前
操作系统开发:(11) RTOS 与 GPOS 的分界线:MMU
c语言·开发语言·汇编·arm开发·系统架构
枷锁—sha1 天前
【pwn系列】Pwndbg 汇编调试实操教程
网络·汇编·笔记·安全·网络安全
白太岁2 天前
C++:(4) 内存布局、编译流程、关键字及其链接性
c语言·汇编·jvm·c++
real_ben_ladeng5 天前
程序人生—Hello’s P2P 2dc736403375808d93f9c97fc816f2f8
c语言·汇编·硬件架构
切糕师学AI5 天前
ARM标准汇编(armasm)中的“定义”(Assembler Directive)
汇编·arm开发
切糕师学AI5 天前
ARM标准汇编(armasm)中的标号(Label)
汇编·arm
CHANG_THE_WORLD6 天前
字符串定义的汇编分析
汇编·数据库
CHANG_THE_WORLD6 天前
深入理解C语言指针:从源码到汇编的彻底剖析
c语言·开发语言·汇编
白太岁8 天前
操作系统开发:(9) 从硬件复位到程序执行:如何编写符合硬件动作的启动文件与链接脚本
c语言·汇编·嵌入式硬件·系统架构
欧恩意8 天前
【Tools】Java反汇编工具推荐
java·汇编