div 指令

div 是除法指令,后面跟的是除数,被除数默认在 ax, 或者 dx、ax 组成的存储单元中。

  1. 除数可以有 8 位和 16 位两种,存储于一个 reg 或内存单元中,也就是说不可以 div 后面跟着 idata

  2. 被除数默认放在 ax 或者 dx 和 ax 中

    1. 如果除数是 8 位,而被除数可以是 16 位或者 32 位,那么被除数选择 16 位
    2. 如果除数是 8 位,而被除数必须是 32 位,那么除数选择 16 位,被除数 32 位
    3. 如果除数是 16 位, 而被除数可以是 16 位或者 32 位,那么被除数选择 32 位
    4. 现在还没有讲到 32 位的除法...

    被除数为 32 位时,dx 存放高 16 位,ax 存放低 16 位

  3. 如果除数是 8 位的,那么 al 储存除法的商,ah 储存除法操作的余数 ;如果除数为 16 为,则 ax 存储除法操作的商,dx 存储除法操作的余数

问题 8.1

用 div 计算 data 段中的第一个数据除以第二个数据后的结果,商存在第三个数据的存储单元中。

data segment
dd 100001
dw 100
dw 0
data ends

分析

题目中的被除数是 100001 而除数是 100,它们的十六进制分别是 186A164,见除数可以使用 8 位去存放,但是被除数必须使用 32 位才可以存放(它有 5 个十六进制位,共 20bits)。那么最终,除数必须使用 16 位去存放。

所以代码如下:

mov ax, data
mov ds, ax
mov ax, ds[0] ; 低 16 位
mov dx, ds[2] ; 高 16 位
div word ptr ds:[4] ; 除数必须是一个字,16 位
mov ds[6], ax ; 保存商

div 指令的更多相关文章

  1. DIV指令一般用法

    本文最初发表于2015-8-14,是由别的地方迁移过来的 (本文所讲为无符号运算) DIV指令是8086汇编中的除法运算指令,它的结果不是浮点数,而是两个整数:商和余数. 我们来看王爽老师是怎么讲的: ...

  2. [汇编语言]-第八章 div指令,伪指令dd,dup

    1- div除法指令 (1) 除数: 有8位和16位两种,在一个寄存器或内存单元中. (2) 被除数: 默认放在AX和DX或AX中 除数为8位, 被除数为16位, 默认在AX中存放. 除数为16位, ...

  3. div指令和mul指令

    div是除法指令,使用div做除法时需要注意: 1)除数:有8位和16位两种,在一个寄存器或者内存单元中 2)被除数:默认存放在AX或DX和AX中.如果除数为8位,被除数则为16位,默认在AX中存放: ...

  4. AngularJS之指令

    紧接上篇博客“初探AngularJS” 一.前言 在AngularJS中指令尤为重要且内容庞多,固单独提炼出来,梳理一番.如有错误,请不吝讲解. 好了,言归正传,让我们一起走进Angular指令的世界 ...

  5. AngularJS中的指令

    欢迎大家讨论与指导 : )  前言 当AngularJS中的内置指令不能满足我们的需求,或者当我们需要创建一个能够用于多个AngularJS程序的自包含的功能单元时,我们应该创建自定义指令来满足需求. ...

  6. 学习linux内核时常碰到的汇编指令(1)

     转载:http://blog.sina.com.cn/s/blog_4be6adec01007xvg.html 80X86 汇编指令符号大全 +.-.*./∶算术运算符. &∶宏处理操作符. ...

  7. Angualar:指令大全

    指令: 内置渲染指令 内置事件指令 内置节点指令 自定义指令 restrict template replace属性 templateUrl属性 trnsclude priorty terminal属 ...

  8. 汇编语言---call和ret指令

    汇编语言--call和ret指令 call和ret指令 call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP. 它们经常被共同用来实现子程序的设计. ret和retf ret指令用栈 ...

  9. angular分页指令

    目前的多个项目中都用到分页这个功能,为了提高可复用性,我特地分离出来写了个分页的指令.直接贴代码,详情如下: index.html <body id="sBill" ng-c ...

随机推荐

  1. MVC Cookie的使用

    1.创建Cookies有两种方法: Response.Cookies["userName"].Value = "patrick"; Response.Cooki ...

  2. Java Annotation 注解

    java_notation.html div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin ...

  3. Angular JS中$timeout的用法及其与window.setTimeout的区别

    $timeout的用法 angular.js的$timeout指令对window.setTimeout做了一个封装,它的返回值是一个promise对象.当定义的时间到了以后,这个promise对象就会 ...

  4. [c#]一个窗体调用另一个窗体的事件

    StuAddForm a = new StuAddForm(); a.IfStudent(textBox1.Text.Trim()):

  5. 使用JSONObject遇到的问题,java.lang.NoClassDefFoundError: net/sf/json/JSONObject

    先是报 java.lang.NoClassDefFoundError: net/sf/json/JSONObject 这个错误, 打开项目属性找到java build path中的libaries,找 ...

  6. Android_demo之生成二维码

    今天我们来学习一个自动生成二维码 的写法.我们经常能见到各种二维码,比如公众号的二维码,网址的,加好友的,支付的二维码等等.其实每一个二维码只是利用图片的形式展示出来的,实际是一些字符串.而这个字符串 ...

  7. EventBus 优化广播的传播

    需要在onEventMainThread方法上,添加@Subscribe,程序才能执行. http://blog.csdn.net/harvic880925/article/details/40787 ...

  8. spring mybatis memcached

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

  9. Android加载SD卡目录,文件夹遍历,图片设置,设置文件对应打开方式等

    此案例主要说的是Android使用GridView加载SD卡下所有目录,文件夹多层遍历,文件图标修改,设置文件对应打开方式等功能. 如图: 代码: public class GridViewFile ...

  10. Android调试小技巧(LogCat不输出、Log自动清空、install时timeout)

    问题:有时候明明连接了设备,而LogCat却没有输出 解决方法:在device界面点一下对应设备,使其处于选中状态(它适用于查看手机文件不显示的情况) 问题:前面记录的Log看着看着突然被清空了 解决 ...