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也会变;

有时间继续;

相关推荐
lhbian16 小时前
AI编程革命:Codex让脚本开发提速10倍
开发语言·汇编·jvm·c#
wechatbot8882 天前
企业微信全场景消息发送接口开发实现及接口调用
java·汇编·微信·企业微信
wechatbot8882 天前
企业微信 iPad 协议接口全功能开发实战
汇编·人工智能·ios·微信·企业微信·ipad
techdashen3 天前
Rust 1.88 终于稳定了裸函数:写汇编不再需要那堆样板代码
汇编·rust
So_shine4 天前
stm32f103汇编-1:LED点灯
汇编·stm32·单片机·led
北漂Zachary5 天前
四大编程语言终极对决:汇编/C#/Go/Java谁更强
汇编·golang·c#
达帮主6 天前
25.C语言 递归函数
c语言·开发语言·汇编
aq55356008 天前
Laravel2.x:被遗忘的PHP框架遗珠
开发语言·汇编·c#
lhbian8 天前
C# vs 汇编:编程世界的两极对比
开发语言·汇编·c#
zopple9 天前
汇编、C、C++和Java核心技术对比
c语言·汇编·c++