170424 汇编-OF标志位的进一步理解
来源:互联网 发布:匡恩网络物联网安全 编辑:程序博客网 时间:2024/06/07 00:42
1625-5 王子昂 总结《2017年4月24日》 【连续第205天总结】
A.汇编语言
QT与JS
B.做了几个检测点来巩固一下知识:
检测点11.3
补全程序,统计F000:0处32个字节中,大小在[32,128]的数据的个数
mov ax,0f000h
mov ds,ax
mov bx,0
mob dx,0
mov cx,32;循环次数
s:mov al,[bx]
cmp al,32
jb s0;jb表示al小于32时传送
cmp al,128
ja s0;ja表示al大于128时传送
inc dx;因此不小于32,不大于128的值使得dx+1
s0:inc bx
loop s
而对于统计大小在(32,128)的数据个数时,
cmp al,32
jna s0;al不大于32时传送
cmp al,128
jnb s0;al不小于128时传送,则为开区间
pushf的功能是将标志寄存器的值压栈,而popf是从栈中弹出数据,送入标志寄存器中
为直接访问标志寄存器提供了一种方法
检测点11.4
求程序执行后ax的值
mov ax,0
push ax
popf
mov ax,0fff0h
add ax,0010h
pushf
pop ax
and al,11000101B
and ah,00001000B
读程序,知道只要判断出0fff0h+0010h的命令之后后,flag的状态即可
0fff0h+0010h=10000h=2^16,在只有16位的寄存器中产生溢出,因此CF=1
溢出后,结果为0,因此ZF=1,SF=0,PF=1
判断OF标志位的关键是把数值作为有符号数考虑
0fff0h转换为二进制后最高位为1,因此它作为有符号数是负数,取补码为-16
0010h转换为二进制后最高位为0,因此它作为有符号数是正数,取补码为16
两数相加为0,形式为-16+16=0
重点来了:没有产生符号变化,也就是没有溢出
因此OF=0
综上,ax=69=45H
MSVC编译器还是需要安装VS中的VC++插件,我记得安装过Building Tools然而看起来还是没用,无奈放弃
PYQT折腾了一下午WebEngineView也没能和JavaScript通信,看来确实不行
将EXAMPLE发给小伙伴,在MSVC的QT中可以通信,放下心来
明天尝试写航点和绘图相关内容
C.明日计划
汇编语言 第十一章
QT
- 170424 汇编-OF标志位的进一步理解
- 汇编中一些标志位的含义
- 影响标志位的汇编指令
- 汇编中有符号与无符号数以及CF,OF标志位的区分
- 标志位寄存器与CF、OF标志位的区分
- 汇编标志位
- 汇编标志位
- 汇编标志位 - FLAGS
- 汇编标志位
- 汇编标志位简介
- 汇编 标志寄存器和标志位
- 汇编总结 标志位/指令
- 汇编指令与标志位
- 汇编test、cmp对标志位的影响
- 汇编,减法指令SUB是怎样影响标志位的?
- 汇编常用指令对标志位的影响(转)
- 汇编——带标志位的冒泡排序
- 汇编常用指令对标志位的影响(转)
- File的基本使用
- 友盟第三方登录流程跟大家分享一下,不足的地方欢迎指点。
- 非交互式分区 (用脚本自动分区)
- B. Igor and his way to work
- 查阅大量资料之后的“匿名内部类”总结
- 170424 汇编-OF标志位的进一步理解
- [树上莫队] BZOJ 3460 Jc的宿舍
- HttpClient使用详解
- SpringMVC请求过程描述 (比喻非常通俗易懂)
- 前端工具安装
- 中南大学第十一届大学生程序设计竞赛-COJ1896-Symmetry
- 版本控制工具
- Ubuntu16.04LTS安装eclipse C++
- 使用js获取当地各种时间