首页 > 编程语言 >汇编坤坤积极知识

汇编坤坤积极知识

时间:2023-10-22 22:34:08浏览次数:32  
标签:汇编 符号 二进制 知识 补码 积极 指令 如果 sf

zf标志 如果运算结果为0显示ZR 否则显示NZ

pf标志 如果运算结果的所有bit位中1的个数位偶数pf=1,也就是PE,反之为0 也就是显示P0,偶数个就是EVEN,奇数个就是ODD。所以E O

sf标志,相关指令执行后,其结果是否为负,如果是负sf=1,显示NG(negative)否则非负是sf=0,显示PL(positive).

对于计算机来说,A=同一个二进制数据可以看作无符号数也可以看作有符号数,sf记录数据的正负,在我们把它当作有符号数计算的时候,可以由它得知结果的正负,如果我们将数据当作无符号数计算,那么sf没有意义。可以把add指令进行的运算看作有符号或者无符号运算,无论如何它包含了2层含义,就是说我们用同一种信息表示了2种结果。
129+1=130 10000010B 如果是-127+1=-126 也是10000010B,翻译成原码就表示十进制-126

mov不会导致符号位的变化只有,加减乘除或者其他这些会变化t

cf标志 如果运算的时候发生了(加法)进位或者(减法)借位,那么cf会变为1,显示CY(carry flag)
,如果没有显示 NC(not carry)

计算机里有符号数都是要转化位补码的,正数的补码就是本身二进制。
这里讲的溢出是对于有符号数的,无符号数看进位
of标志,如果运算的时候发生了溢出,那么显示OV(overflow),否则显示NV(not overflow),比如Al寄存器是0088,其二进制就是1000 1000,首位是1,如果看作无符号就直接转化十进制,如果看作有符号因为首位是1那么就是负数而负数的补码是那一套转化,如果首位是0那么即使看作有符号数也无需转化因为正数的补码就是它二进制本身只有负数要转换,有符号则为-120,后面取反+1,如果+上1111 0000有符号为-16,结果是-136,但是8为有符号数范围是-128——127,16位有符号数范围是-32768——32767,作为有符号数,就是136+240,溢出了。再比如十进制下的98+99=197,在十六进制下就是C5,如果看作无符号答案是197小于255,没有进位,看作有符号数,对应的63和62十六进制,它们的二进制首位都是0,所以是正数,它们的补码就是本身二进制,所以运算后结果仍是197(十进制),大于127范围,所以溢出了


adc指令是带进位加法,会加上cf标志位。sbb是带借位减法,会减去cf标志位
cmp指令的话相当于减法不会保存结果,但是会引起标志位的变化,可以借此比较大小什么的。

loop循环的话,emmm就是循环次数看cx寄存器,也就是计数寄存器,当执行到loop的时候,先cx-1,然后判断是否为0,如果为0就结束退出,在内存里的话,保存的汇编指令其实只是循环内的指令,loop指令执行后,ip地址跳到开始的位置,然后开始循环。
当-q退出后,再次debug .exe 那么,还是重新开始执行。
如果不想每次都是按-t指令,那么就用debug 的-g 段地址+ip指令(如果没有段地址默认为当前的cs),就是直接执行到ip这个位置。类似于断点调试的感觉。
当进入循环后,使用debug 的-p指令,就会直接执行完当前的循环。可以先想一想c++怎么写。

 

注意格式,多练就好了

标签:汇编,符号,二进制,知识,补码,积极,指令,如果,sf
From: https://www.cnblogs.com/NiShu7777/p/17781297.html

相关文章

  • win32汇编-分支语句
    分支语句用来根据条件表达式测试的真假执行不同的代码模块,MASM中的分支语句的语法如下: 注意:关键字if/elseif/else/endif的前面有个小数点,如果不加小数点,就变成宏汇编中的条件汇编伪操作了,结果可是天差地别。         ......
  • 软件工程知识总结梳理
    1.软件与软件组成?软件工程常用的8个质量要素的定义?计算机科学对软件的定义:软件是在计算机系统支持下,能够完成特定功能和性能的程序、数据和相关的文档。软件可形式化表示为:软件=知识+程序+数据+文档用户关注软件质量的外部属性,如软件的正确性、可靠性、有效性、安全性、可用性、可......
  • 区块链安全技术全方位掌握:从基础知识到公链开发和智能合约实战
    区块链安全技术全方位掌握:从基础知识到公链开发和智能合约实战0x00 前言区块链的安全需求越来越多,下面就将这些需求一一拆分,看看区块链安全需求到底是个什么样子。0x01 拆分目前针对安全服务行业的区块链安全需求,更多的是基于其上层应用(红色箭头指向)比如数字货币交易平台......
  • 数据库基础学习过程中遇到的一些基础知识
    1、E-R图它是结构化分析过程的工具,用于数据建模,将现实世界中的十五抽象成信息世界里的数据;2、数据库设计包括--概念设计、逻辑设计、物理设计概念设计:用户角度、E-R图;逻辑设计:E-R图转换成关系模式;物理设计:物理存储方法、索引等;3、数据库系统的三级模式概念模式(也叫做模式、......
  • 知识点
    ——图论——最短路化点权位边权P1938[USACO09NOV]JobHuntS分层图P1073[NOIP2009提高组]最优贸易P4568[JLOI2011]飞行路线(细节较多)三倍经验...P2939[USACO09FEB]RevampingTrailsGP4822[BJWC2012]冻结P1266速度限制次短路-k短路(次)P286......
  • win32汇编-条件测试语句
      MASM条件测试的基本表达式是:       ......
  • 网络基础知识
    1.1数据包和帧数据帧(frame)是数据链路层的协议数据单元,它由帧头,数据部分,帧尾三部分组成,帧头和帧未携带一些信息,比如同步信息,地址信息,差错控制信息等,数据部分包含网络层传递的信息。数据包是TCP/IP协议传输的数据单位,应用于网络层,网络层的数据包传递到数据链路层,加上数据链路......
  • html知识点整理
    知识体系2案例整理(1)案例一:    1)需求:响应式设计    2)代码:       3)效果图  (2)案例21)需求:内联框架2)代码: 3)效果图 3.难点整理1,表单创建: 效果图2,内联框架创建Iframe(在网页中显示网页) ......
  • 汇编 & 寄存器 总结
    栈为什么从高地址向地址增长,因为更好的利用内存,一个从高往低,一个从低往高,最终内存被充分利用pop与push指令都是堆栈顶指针的操作pop栈顶指针esp增加,弹出栈中内存数据到寄存器push栈顶指针esp减小,将寄存器(或许指定的数据)中的数据写入到栈内存......
  • 操作系统之部分知识点总结
    1、计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将程序计数器的内容送到地址总线上;2、当有进程运行时,其他进程访问信号量,信号量就会执行-1操作;3、各种周期时钟周期--也称为震荡周期,定义为时钟脉冲的倒数,是计算机中最基本、最小的时间单位;指令周期--是执行一条指......