美文网首页
8086汇编(30)解决除法溢出的问题

8086汇编(30)解决除法溢出的问题

作者: 迷心迷 | 来源:发表于2019-04-04 17:54 被阅读0次

解决除法溢出的问题

名称:divdw

功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。

参数:(ax)=dword型数据的低16位

     (dx)=dword型数据的高16位

     (cx)=除数

返回:

(dx)=结果的高16位,(ax)=结果的低16位

  (cx)=余数

应用举例:计算1000000/10(F4240H/0AH)

提示

给出一个公式:

X:被除数,范围:[0, FFFFFFFF]

N:除数,范围:[0, FFFF]

H:X高16位,范围:[0, FFFF]

L:X低16位,范围:[0, FFFF]

int():描述性运算符,取商,比如,int(38/10) =3

rem():描述性运算符,取余数,比如,rem(38/10)= 8

公式:X/N = int(H/N) * 65536 +[rem(H/N) * 65536 + L] / N

这个公式将可能产生溢出的除法运算:X/N,转变为多个不会产生溢出的除法运算。公式中,等号右边的所有除法运算都可以用div指令来做,肯定不会导致除法溢出。

assume  cs:code

code  segment

start:    
        mov ax, 4240H
        mov dx, 000FH
        mov cx, 0AH
        call divdw

        mov ax, 4c00h
        int 21h

divdw:
     push bx
     push si

        mov bx,ax
        mov ax, dx
        mov dx, 0
        div cx          ;ax = int(H/N), dx = rem(H/N)
        mov si, ax      ;si = int(H/N), (dx) = rem(H/N) * 65536
        mov ax, bx
        div cx          ;(rem(H/N) * 65536 + L) / N, ax保存的低16位商,(dx) = 余数

        mov cx, dx
        mov dx, si

     pop si
     pop bx
        ret

code  ends
end   start

相关文章

  • 8086汇编(30)解决除法溢出的问题

    解决除法溢出的问题 名称:divdw 功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结...

  • 汇编学习笔记(完结篇)

    内中断 对于8086,当cpu内部有下面的情况发生时,将产生相应的中断: 除法错误,如执行div时产生的除法溢出 ...

  • 汇编分析&编译器优化

    汇编的种类 8086汇编(8086处理器是16bit的CPU) Win32汇编 Win64汇编 ARM汇编(嵌入式...

  • 逆向 - arm64汇编 - 第一天

    1. 汇编语言种类 8086汇编(8086处理器是16bit的CPU)Win32汇编Win64汇编ARM汇编(嵌入...

  • 1.汇编初识

    汇编语言常见种类: 8086汇编 (8086处理器是16bit的CPU) Win32汇编 Win64汇编 AT&T...

  • iOS逆向之初识别汇编

    汇编语言是使用助记符代替机器语言。 汇编语言的种类,目前讨论比较多的汇编语言有 • 8086汇编(8086处理器是...

  • ARM64汇编学习笔记一(初始汇编)

    汇编语言的种类 目前讨论比较多的汇编语言有:8086 汇编(8086处理器是16bit 的 CPU)Win32 汇...

  • 汇编语言知多少(二): 指令使用

    在上篇文章中我们具体介绍了汇编语言的一些背景, 以及 8086汇编 工作原理, 在这篇文章中具体讲解8086汇编指...

  • 汇编练习:不会溢出的除法

    王爽老师的《汇编语言》在实验10.2中提出了div指令可能出现的除法溢出的问题。例如对于16位除以8位的情形,考虑...

  • 8086汇编

    编程语言的发展 机器语言由0和1组成 汇编语言(Assembly Language)用符号代替了0和1,比机器语言...

网友评论

      本文标题:8086汇编(30)解决除法溢出的问题

      本文链接:https://www.haomeiwen.com/subject/pomqiqtx.html