[{"content":"第10章\tCALL和RET指令 10.1\tret和retf 10.2\tcall指令 10.3\t依据位移进行转移的call指令 10.4\t转移的目的地址在指令中的call指令 10.5\t转移地址在寄存器中的call指令 10.6\t转移地址在内存中的call指令 10.7\tcall和ret的配合使用 10.8\tmul指令 10.9\t模块化程序设计 10.10\t参数和结果传递的问题 10.11\t批量数据的传递 10.12\t寄存器冲突的问题 第11章 标志寄存器 标志寄存器(flag)的作用：\n用来存储相关指令的某些执行结果； 用来为CPU执行相关指令提供行为依据； 用来控制CPU的相关工作。 11.1 ZF标志 flag的第6位 ZF 是 零标志位\n结果为0，zf=1；\t1表示逻辑真，即代表肯定“是0”这样的信息\n结果不为0，zf=0。\t0表示逻辑假，即否定含义，表示“结果不是0”\n大多数运算指令对标志寄存器有影响，大多数传送指令大多数对标志寄存器没有影响。\n11.2 PF标志 flag的第3位 PF 是 奇偶标志位\n结果所有bit位中1的个数为偶数，pf=1；\n结果所有bit位中1的个数为奇数，pf=0；\n11.3 SF标志 flag的第3位 SF 是 符号标志位\n结果为负，sf=1；\n结果为非负，sf=0；\n11.4 CF标志 flag的第0位 CF 是 进位标志位\n在进行==无符号位==运算的时候，它记录了运算结果的最高有效位向更高位的进位值，或从更高位的借位值。\n当更高位需要进位或者借位时，cf=1；\n当更高位不需ddai要进位或者借位时，cf=0；\n11.5 OF标志 flag的第0位 OF 是 溢出标志位\n==有符号数运算==结果发生了溢出，OF=1；\n==有符号数运算==结果没有发生溢出，OF=0；\n11.6 adc指令 带进位加法指令\n指令格式：adc 操作对象1，操作对象2\n功能：操作对象1 = 操作对象1 + 操作对象2 + CF\n例子： adc ax,bx 实现的功能是：(ax)=(ax)+(bx)+CF\n11.7 sbb指令 带错位减法指令\n指令格式：sbb 操作对象1，操作对象2\n功能：操作对象1 = 操作对象1 - 操作对象2 - CF\n例子： sbb ax,bx 实现的功能是：(ax)=(ax)-(bx)-CF\n11.8 cmp指令 比较指令\n指令格式：cmp 操作对象1，操作对象2\n功能：计算 操作对象1 - 操作对象2 但不保存结果，仅仅根据计算结果对标志寄存器进行设置\n例子： cmp ax,ax ，做(ax)-(ax)的运算，结果为0，但并不在ax中保存，仅影响flag的相关各位。指令执行后：zf=1，pf=1，sf=0，cf=0，of=0\ncmp ax,bx\n如果(ax)=(bx)则(ax)-(bx)=0，所以：zf=1;\n如果(ax)≠(bx)则(ax)-(bx)≠0，所以：zf=0;\n如果(ax)\u0026lt;(bx)则(ax)-(bx)将产生借位，所以：cf=1;\n如果(ax)≥(bx)则(ax)-(bx)不必借位，所以：cf=0;\n如果(ax)\u0026gt;(bx)则(ax)-(bx)即不必借位，结果又不为0，所以：cf=0并且zf=0;\n如果(ax)≤(bx)则(ax)-(bx)即可能借位，结果可能为0，所以：cf=1或zf=1。\n指令 cmp ax,bx 的逻辑含义是比较ax和bx中的值，如果执行后：\nzf=1，说明(ax)=(bx)\nzf=0，说明(ax)≠(bx)\ncf=1，说明(ax)\u0026lt;(bx)\ncf=0，说明(ax)≥(bx)\ncf=0并且zf=0，说明(ax)\u0026gt;(bx)\ncf=1或zf=1，说明(ax)≤(bx)\n== 以上是cmp指令对无符号数进行比较，以下是有符号数 ==\ncmp ah,bh\n如果(ah)=(bh)则(ah)-(bh)=0，所以：zf=1;\n如果(ah)≠(bh)则(ah)-(bh)≠0，所以：zf=0;\n如果(ah)\u0026lt;(bh)则(ah)-(bh)将产生借位，所以：cf=1;\n如果(ah)≥(bh)则(ah)-(bh)不必借位，所以：cf=0;\n如果(ah)\u0026gt;(bh)则(ah)-(bh)即不必借位，结果又不为0，所以：cf=0并且zf=0;\n如果(ah)≤(bh)则(ah)-(bh)即可能借位，结果可能为0，所以：cf=1或zf=1。\n","permalink":"https://myblog-6vy.pages.dev/posts/binary/assembly/","summary":"\u003ch1 id=\"第10章call和ret指令\"\u003e第10章\tCALL和RET指令\u003c/h1\u003e\n\u003ch2 id=\"101ret和retf\"\u003e10.1\tret和retf\u003c/h2\u003e\n\u003ch2 id=\"102call指令\"\u003e10.2\tcall指令\u003c/h2\u003e\n\u003ch2 id=\"103依据位移进行转移的call指令\"\u003e10.3\t依据位移进行转移的call指令\u003c/h2\u003e\n\u003ch2 id=\"104转移的目的地址在指令中的call指令\"\u003e10.4\t转移的目的地址在指令中的call指令\u003c/h2\u003e\n\u003ch2 id=\"105转移地址在寄存器中的call指令\"\u003e10.5\t转移地址在寄存器中的call指令\u003c/h2\u003e\n\u003ch2 id=\"106转移地址在内存中的call指令\"\u003e10.6\t转移地址在内存中的call指令\u003c/h2\u003e\n\u003ch2 id=\"107call和ret的配合使用\"\u003e10.7\tcall和ret的配合使用\u003c/h2\u003e\n\u003ch2 id=\"108mul指令\"\u003e10.8\tmul指令\u003c/h2\u003e\n\u003ch2 id=\"109模块化程序设计\"\u003e10.9\t模块化程序设计\u003c/h2\u003e\n\u003ch2 id=\"1010参数和结果传递的问题\"\u003e10.10\t参数和结果传递的问题\u003c/h2\u003e\n\u003ch2 id=\"1011批量数据的传递\"\u003e10.11\t批量数据的传递\u003c/h2\u003e\n\u003ch2 id=\"1012寄存器冲突的问题\"\u003e10.12\t寄存器冲突的问题\u003c/h2\u003e\n\u003ch1 id=\"第11章-标志寄存器\"\u003e第11章 标志寄存器\u003c/h1\u003e\n\u003cp\u003e标志寄存器(flag)的作用：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e用来存储相关指令的某些执行结果；\u003c/li\u003e\n\u003cli\u003e用来为CPU执行相关指令提供行为依据；\u003c/li\u003e\n\u003cli\u003e用来控制CPU的相关工作。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cimg alt=\"image-20230211214531253\" loading=\"lazy\" src=\"/posts/binary/assembly/image-20230211214531253-1785414643985-4.png\"\u003e\u003c/p\u003e\n\u003ch2 id=\"111-zf标志\"\u003e11.1 ZF标志\u003c/h2\u003e\n\u003cp\u003eflag的第6位 ZF 是 零标志位\u003c/p\u003e\n\u003cp\u003e结果为0，zf=1；\t1表示逻辑真，即代表肯定“是0”这样的信息\u003c/p\u003e\n\u003cp\u003e结果不为0，zf=0。\t0表示逻辑假，即否定含义，表示“结果不是0”\u003c/p\u003e\n\u003cp\u003e大多数运算指令对标志寄存器有影响，大多数传送指令大多数对标志寄存器没有影响。\u003c/p\u003e\n\u003ch2 id=\"112-pf标志\"\u003e11.2 PF标志\u003c/h2\u003e\n\u003cp\u003eflag的第3位 PF 是 奇偶标志位\u003c/p\u003e\n\u003cp\u003e结果所有bit位中1的个数为偶数，pf=1；\u003c/p\u003e\n\u003cp\u003e结果所有bit位中1的个数为奇数，pf=0；\u003c/p\u003e\n\u003ch2 id=\"113-sf标志\"\u003e11.3 SF标志\u003c/h2\u003e\n\u003cp\u003eflag的第3位 SF 是 符号标志位\u003c/p\u003e\n\u003cp\u003e结果为负，sf=1；\u003c/p\u003e\n\u003cp\u003e结果为非负，sf=0；\u003c/p\u003e\n\u003ch2 id=\"114-cf标志\"\u003e11.4 CF标志\u003c/h2\u003e\n\u003cp\u003eflag的第0位 CF 是 进位标志位\u003c/p\u003e\n\u003cp\u003e在进行==无符号位==运算的时候，它记录了运算结果的最高有效位向更高位的进位值，或从更高位的借位值。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"image-20230212094913035\" loading=\"lazy\" src=\"/posts/binary/assembly/image-20230212094913035-1785414655584-6.png\"\u003e\u003c/p\u003e\n\u003cp\u003e当更高位需要进位或者借位时，cf=1；\u003c/p\u003e\n\u003cp\u003e当更高位不需ddai要进位或者借位时，cf=0；\u003c/p\u003e","title":"汇编语言"},{"content":"Hello Hugo 这是我的第一篇博客。\n关于我 我是一名信息安全学习者，目前正在学习：\nLinux 网络安全 Web安全 Python Java 我的目标 通过博客记录自己的学习过程，包括：\n技术学习笔记 环境搭建记录 漏洞分析过程 项目实践经验 希望通过持续学习，不断提升自己的技术能力。\n1 2 3 4 5 6 7 8 #include \u0026lt;stdio.h\u0026gt; int main() { printf(\u0026#34;Hello, World!\\n\u0026#34;); return 0; } ","permalink":"https://myblog-6vy.pages.dev/posts/hello/","summary":"\u003ch1 id=\"hello-hugo\"\u003eHello Hugo\u003c/h1\u003e\n\u003cp\u003e这是我的第一篇博客。\u003c/p\u003e\n\u003ch2 id=\"关于我\"\u003e关于我\u003c/h2\u003e\n\u003cp\u003e我是一名信息安全学习者，目前正在学习：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLinux\u003c/li\u003e\n\u003cli\u003e网络安全\u003c/li\u003e\n\u003cli\u003eWeb安全\u003c/li\u003e\n\u003cli\u003ePython\u003c/li\u003e\n\u003cli\u003eJava\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"我的目标\"\u003e我的目标\u003c/h2\u003e\n\u003cp\u003e通过博客记录自己的学习过程，包括：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e技术学习笔记\u003c/li\u003e\n\u003cli\u003e环境搭建记录\u003c/li\u003e\n\u003cli\u003e漏洞分析过程\u003c/li\u003e\n\u003cli\u003e项目实践经验\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e希望通过持续学习，不断提升自己的技术能力。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv style=\"color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\n\u003ctable style=\"border-spacing:0;padding:0;margin:0;border:0;\"\u003e\u003ctr\u003e\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e1\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e2\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e3\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e4\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e5\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e6\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e7\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6c6f74\"\u003e8\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;;width:100%\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-c\" data-lang=\"c\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#5e81ac;font-style:italic\"\u003e#include\u003c/span\u003e \u003cspan style=\"color:#5e81ac;font-style:italic\"\u003e\u0026lt;stdio.h\u0026gt;\u003c/span\u003e\u003cspan style=\"color:#5e81ac;font-style:italic\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#5e81ac;font-style:italic\"\u003e\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#81a1c1\"\u003eint\u003c/span\u003e \u003cspan style=\"color:#88c0d0\"\u003emain\u003c/span\u003e\u003cspan style=\"color:#eceff4\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#eceff4\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#88c0d0\"\u003eprintf\u003c/span\u003e\u003cspan style=\"color:#eceff4\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#a3be8c\"\u003e\u0026#34;Hello, World!\u003c/span\u003e\u003cspan style=\"color:#ebcb8b\"\u003e\\n\u003c/span\u003e\u003cspan style=\"color:#a3be8c\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#eceff4\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#81a1c1;font-weight:bold\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#b48ead\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#eceff4\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#eceff4\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e","title":"这是我的第一篇博客"},{"content":"你好，我是 colorless。\n一位网文和二进制爱好者\n目前学习方向：\n网络安全 绝地求生 这个博客用于：\n学习笔记 生活记录 ","permalink":"https://myblog-6vy.pages.dev/about/","summary":"\u003cp\u003e你好，我是 colorless。\u003c/p\u003e\n\u003cp\u003e一位网文和二进制爱好者\u003c/p\u003e\n\u003cp\u003e目前学习方向：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e网络安全\u003c/li\u003e\n\u003cli\u003e绝地求生\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e这个博客用于：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e学习笔记\u003c/li\u003e\n\u003cli\u003e生活记录\u003c/li\u003e\n\u003c/ul\u003e","title":"关于我"}]