【汇编语言】除法(DIV/IDIV)

除法(DIV/IDIV)

目录

      • 除法(DIV/IDIV)
        • `DIV`(unsigned divide)无符号数除法
        • `IDIV`(signed divide)有符号数除法

DIV(unsigned divide)无符号数除法

格式:DIV SRC

操作:

  • SRCSRCSRC为字节时,(AL)←(AX)/(SRC)(AL)\gets (AX)/(SRC)(AL)(AX)/(SRC)的商,(AH)←(AX)/(SRC)(AH)\gets (AX)/(SRC)(AH)(AX)/(SRC)的余数
  • SRCSRCSRC为字时,(AX)←(DX,AX)/(SRC)(AX)\gets (DX,AX)/(SRC)(AX)(DX,AX)/(SRC)的商,(DX)←(DX,AX)/(SRC)(DX)\gets (DX,AX)/(SRC)(DX)(DX,AX)/(SRC)的余数

该指令将参与运算的数据默认为无符号数,则商和余数都是无符号数

除法貌似并不会影响标志位(进位标志CFCFCF和溢出标志OFOFOF)的改变,但通过上述操作可知,被除数位数总是除数的两倍,而相除的商和余数是存储在和除数位数相同的空间里,显然余数是肯定够存的,但是商是有可能存不下的(例如:0300H÷02H=0180H0300H\div 02H=0180H0300H÷02H=0180H,这里商仅依靠字节存储是无法存下的)。商出现溢出时,系统转0号类型中断处理,提示“divide overflow”,并退出程序,返回到操作系统,程序便已经崩溃了。要想避免出现这种情况,必须在作除法前对溢出作出预判

由于商需要更大空间来存储,而字节长度的除数无法满足,因此需要将其扩展为字长度,这样商便有了字长度空间存储

MOV AX, 300H
CWD ;这里书上使用CWD指令进行字到双字的符号扩展(将AX的符号位即最高位填充至DX的所有位),而这里使用的是无符号数除法,当被除数的最高位为1时显然会扩大被除数的大小,我认为应当使用零扩展(即将DX所有位置0),这样便不会改变原数的大小,但我未查询到汇编零扩展的相关指令,或许没有该指令,也许只能自己手动零扩展(MOV DX, 0)
MOV BX, 2
DIV BX ;这里的SRC为字长

这里使用CWD进行符号扩展是因为SRCSRCSRC为字长时,被除数则为(DX,AX)(DX,AX)(DX,AX),因此需将这两寄存器一起看作被除数,于是使用CWDDXDXDX置0,使其整体等于300H300H300H,这里个人认为因采用类似MOV DX, 0 的指令去处理更为合理

在这里插入图片描述

等到的结果商为180H(AX)180H(AX)180H(AX),余数为0H(DX)0H(DX)0H(DX)

IDIV(signed divide)有符号数除法

指令格式和操作与无符号数除法相同,用来作有符号数除法。最终商的符号应是两个操作数符号的异或,而余数的符号和被除数符号一致

这里用FF80H(−128)÷03H(+3)=D6H(−42)⋯⋯FEH(−2)FF80H(-128)\div 03H(+3)=D6H(-42)\cdots \cdots FEH(-2)FF80H(128)÷03H(+3)=D6H(42)FEH(2)举例

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

远控免杀专题(17)-Python-Rootkit免杀

免杀能力一览表 几点说明: 1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家桶…

斜视角的讨论(转)

http://school.ogdev.net/listshow.asp?page4&typeid0&categoryid5&id0&ListType2 目 录 1.1 地图和地表 1.2 斜视角游戏中的视角 1.3 Tile图片的拼接 1.4 不同地表间的过渡 1.5 地图数据结构的定义 --------------------------------------------------…

计算机网络(湖科大教书匠)

计算机网络(湖科大教书匠) 本文档为教学视频【计算机网络微课堂(有字幕无背景音乐版)_哔哩哔哩_bilibili】的摘录 目录计算机网络(湖科大教书匠)一、绪论1.2 因特网概述1.2.1 网络、互连网(互联…

远控免杀专题(18)-ASWCrypter免杀

免杀能力一览表 几点说明: 1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家桶…

Direct3D中的绘制(3)

立方体——只比三角形稍微复杂一点,这个程序渲染一个线框立方体。 这个简单的绘制和渲染立方体的程序的运行结果如下图所示: 源程序: /************************************************************************************** Renders a …

远控免杀专题(19)-nps_payload免杀

免杀能力一览表 几点说明: 1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家桶…

操作系统中的多级队列调度

多级队列调度 (Multilevel queue scheduling) Every algorithm supports a different class of process but in a generalized system, some process wants to be scheduled using a priority algorithm. While some process wants to remain in the system (interactive proce…

借助格式化输出过canary保护

0x01 canary保护机制 栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真…

各抓包软件的之间差异_系统软件和应用程序软件之间的差异

各抓包软件的之间差异什么是软件? (What is Software?) Software is referred to as a set of programs that are designed to perform a well-defined function. A program is a particular sequence of instructions written to solve a particular problem. 软件…

ret2shellcdoe

ret2shellcode的关键是找到一个缓冲区&#xff0c;这个缓冲区是可读写写可执行的&#xff0c;我们要想办法把我们的shellcdoe放到这个缓冲区&#xff0c;然后跳转到我们的shellcode处执行。 例子&#xff1a; #include <stdio.h> #include <string.h> char str1[…

远控免杀专题(20)-GreatSCT免杀

转载&#xff1a;https://mp.weixin.qq.com/s/s9DFRIgpvpE-_MneO0B_FQ 免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/mete…

java上传类

publicString doFormFile(FormFile file, String dir) { try { File f new File(dir); if (!f.exists()) { f.mkdir();//如果路径不存在&#xff0c;创建 } InputStream in file.getInputStream(); …

远控免杀专题(21)-HERCULES免杀

转载&#xff1a;https://mp.weixin.qq.com/s/Rkr9lixzL4tiL89r10ndig 免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/mete…

PHP Cookbook读书笔记 – 第16章互联网服务

发送电子邮件 书中主要是以PEAR中的邮件发送类&#xff08;Mail&#xff09;来讲解的&#xff08;关于如何在WIN系统下安装PEAR可以参考WIN下成功安装PEAR&#xff09;。PEAR的MAIL类可以通过3种方式来发送电子邮件&#xff1a; 通过PHP内部的mail函数来发送 通过sendmail程序来…

Python | 使用matplotlib.pyplot创建条形图

Problem statement: Using matplotlib.pyplot library in python draw a bar graph with two values for comparison, using different colors. 问题陈述&#xff1a;在python中使用matplotlib.pyplot库使用不同的颜色绘制带有两个值的条形图以进行比较。 Program: 程序&#…

输出以下的杨辉三角形(要求输入个数字,表示需要输出几行)

#include<stdio.h> int main() {int i,j,k,n,x,a[100][100];a[0][1]1;scanf("%d",&x);for(i1;i<x;i){for(j1;j<i;j){a[i][j]a[i-1][j-1]a[i-1][j];printf("%5d ",a[i][j]);//%5d 表示右对齐隔5个空格&#xff1b;}//同理&#xff0c;%-5d…

远控免杀专题(22)-SpookFlare免杀

转载&#xff1a;https://mp.weixin.qq.com/s/LfuQ2XuD7YHUWJqMRUmNVA 免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/mete…

最新Asp.net源码推荐列表(4月7日)

好久没有在cnblogs给大家发布asp.net源码了&#xff0c;把最近整理的一些发给大家&#xff0c;希望对大家有所帮助&#xff0c;以后争取保持每周发布&#xff01;- WOBIZ第一季1.2版源码 Hits:29 2008-4-7 [结构图] [^][VS2005Access] 电子商务2.0软件是窝窝团队基于对互联网…

远控免杀专题(23)-SharpShooter免杀

转载&#xff1a;https://mp.weixin.qq.com/s/EyvGfWXLbxkHe7liaNFhGg 免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/mete…

MySQL 发展史

一.MySQL 标志说明MySQL的海豚标志的名字叫“sakila”&#xff0c;它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说&#xff0c;Sakila来自一种叫SiSwat…