亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ulldvrm.asm

?? C語言庫函數的原型,有用的拿去
?? ASM
字號:
        title   ulldvrm - unsigned long divide and remainder routine
;***
;ulldvrm.asm - unsigned long divide and remainder routine
;
;       Copyright (c) Microsoft Corporation. All rights reserved.
;
;Purpose:
;       defines the unsigned long divide and remainder routine
;           __aulldvrm
;
;*******************************************************************************


.xlist
include cruntime.inc
include mm.inc
.list

;***
;ulldvrm - unsigned long divide and remainder
;
;Purpose:
;       Does a unsigned long divide and remainder of the arguments.  Arguments
;       are not changed.
;
;Entry:
;       Arguments are passed on the stack:
;               1st pushed: divisor (QWORD)
;               2nd pushed: dividend (QWORD)
;
;Exit:
;       EDX:EAX contains the quotient (dividend/divisor)
;       EBX:ECX contains the remainder (divided % divisor)
;       NOTE: this routine removes the parameters from the stack.
;
;Uses:
;       ECX
;
;Exceptions:
;
;*******************************************************************************

        CODESEG

_aulldvrm PROC NEAR
.FPO (1, 4, 0, 0, 0, 0)

        push    esi

; Set up the local stack and save the index registers.  When this is done
; the stack frame will look as follows (assuming that the expression a/b will
; generate a call to aulldvrm(a, b)):
;
;               -----------------
;               |               |
;               |---------------|
;               |               |
;               |--divisor (b)--|
;               |               |
;               |---------------|
;               |               |
;               |--dividend (a)-|
;               |               |
;               |---------------|
;               | return addr** |
;               |---------------|
;       ESP---->|      ESI      |
;               -----------------
;

DVND    equ     [esp + 8]       ; stack address of dividend (a)
DVSR    equ     [esp + 16]      ; stack address of divisor (b)

;
; Now do the divide.  First look to see if the divisor is less than 4194304K.
; If so, then we can use a simple algorithm with word divides, otherwise
; things get a little more complex.
;

        mov     eax,HIWORD(DVSR) ; check to see if divisor < 4194304K
        or      eax,eax
        jnz     short L1        ; nope, gotta do this the hard way
        mov     ecx,LOWORD(DVSR) ; load divisor
        mov     eax,HIWORD(DVND) ; load high word of dividend
        xor     edx,edx
        div     ecx             ; get high order bits of quotient
        mov     ebx,eax         ; save high bits of quotient
        mov     eax,LOWORD(DVND) ; edx:eax <- remainder:lo word of dividend
        div     ecx             ; get low order bits of quotient
        mov     esi,eax         ; ebx:esi <- quotient

;
; Now we need to do a multiply so that we can compute the remainder.
;
        mov     eax,ebx         ; set up high word of quotient
        mul     dword ptr LOWORD(DVSR) ; HIWORD(QUOT) * DVSR
        mov     ecx,eax         ; save the result in ecx
        mov     eax,esi         ; set up low word of quotient
        mul     dword ptr LOWORD(DVSR) ; LOWORD(QUOT) * DVSR
        add     edx,ecx         ; EDX:EAX = QUOT * DVSR
        jmp     short L2        ; complete remainder calculation

;
; Here we do it the hard way.  Remember, eax contains DVSRHI
;

L1:
        mov     ecx,eax         ; ecx:ebx <- divisor
        mov     ebx,LOWORD(DVSR)
        mov     edx,HIWORD(DVND) ; edx:eax <- dividend
        mov     eax,LOWORD(DVND)
L3:
        shr     ecx,1           ; shift divisor right one bit; hi bit <- 0
        rcr     ebx,1
        shr     edx,1           ; shift dividend right one bit; hi bit <- 0
        rcr     eax,1
        or      ecx,ecx
        jnz     short L3        ; loop until divisor < 4194304K
        div     ebx             ; now divide, ignore remainder
        mov     esi,eax         ; save quotient

;
; We may be off by one, so to check, we will multiply the quotient
; by the divisor and check the result against the orignal dividend
; Note that we must also check for overflow, which can occur if the
; dividend is close to 2**64 and the quotient is off by 1.
;

        mul     dword ptr HIWORD(DVSR) ; QUOT * HIWORD(DVSR)
        mov     ecx,eax
        mov     eax,LOWORD(DVSR)
        mul     esi             ; QUOT * LOWORD(DVSR)
        add     edx,ecx         ; EDX:EAX = QUOT * DVSR
        jc      short L4        ; carry means Quotient is off by 1

;
; do long compare here between original dividend and the result of the
; multiply in edx:eax.  If original is larger or equal, we are ok, otherwise
; subtract one (1) from the quotient.
;

        cmp     edx,HIWORD(DVND) ; compare hi words of result and original
        ja      short L4        ; if result > original, do subtract
        jb      short L5        ; if result < original, we are ok
        cmp     eax,LOWORD(DVND) ; hi words are equal, compare lo words
        jbe     short L5        ; if less or equal we are ok, else subtract
L4:
        dec     esi             ; subtract 1 from quotient
        sub     eax,LOWORD(DVSR) ; subtract divisor from result
        sbb     edx,HIWORD(DVSR)
L5:
        xor     ebx,ebx         ; ebx:esi <- quotient

L2:
;
; Calculate remainder by subtracting the result from the original dividend.
; Since the result is already in a register, we will do the subtract in the
; opposite direction and negate the result.
;

        sub     eax,LOWORD(DVND) ; subtract dividend from result
        sbb     edx,HIWORD(DVND)
        neg     edx             ; otherwise, negate the result
        neg     eax
        sbb     edx,0

;
; Now we need to get the quotient into edx:eax and the remainder into ebx:ecx.
;
        mov     ecx,edx
        mov     edx,ebx
        mov     ebx,ecx
        mov     ecx,eax
        mov     eax,esi
;
; Just the cleanup left to do.  edx:eax contains the quotient.
; Restore the saved registers and return.
;

        pop     esi

        ret     16

_aulldvrm ENDP

        end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久婷婷| 日韩精品国产精品| 亚洲尤物在线视频观看| 奇米四色…亚洲| 色综合久久久久久久久久久| 日韩午夜精品电影| 亚洲视频在线一区| 国产成人综合在线| 日韩三级免费观看| 日韩理论在线观看| 国产成a人亚洲精品| 日韩美女在线视频| 午夜精品福利一区二区三区蜜桃| av不卡一区二区三区| 精品欧美乱码久久久久久| 一区二区三区波多野结衣在线观看| 国精品**一区二区三区在线蜜桃| 欧美色爱综合网| 亚洲欧美国产三级| 成人亚洲一区二区一| 精品国产免费一区二区三区香蕉| 艳妇臀荡乳欲伦亚洲一区| 不卡高清视频专区| 国产精品午夜电影| 国产精品一区二区三区四区| 日韩午夜av电影| 午夜免费欧美电影| 欧美日韩中文精品| 亚洲国产视频一区二区| 在线视频一区二区三区| 亚洲欧美一区二区三区久本道91| 成人av在线资源网站| 亚洲欧洲无码一区二区三区| 成人综合婷婷国产精品久久蜜臀 | 欧美精品一区二区三区一线天视频 | 日韩精品一区二区三区四区视频 | 日本aⅴ免费视频一区二区三区| 欧洲一区二区av| 亚洲最大的成人av| 欧美中文字幕一区二区三区 | 国产精品丝袜在线| 成人小视频免费在线观看| 国产日韩欧美综合在线| 国产成人精品影院| 国产精品色眯眯| 99re这里都是精品| 亚洲综合丁香婷婷六月香| 欧美综合亚洲图片综合区| 亚洲一级不卡视频| 日韩一区二区精品葵司在线| 精品系列免费在线观看| 久久人人97超碰com| 成人免费av资源| 亚洲精品国产品国语在线app| 欧美性大战久久久久久久蜜臀| 日一区二区三区| 久久精品视频免费| 91成人免费网站| 美女久久久精品| 中文字幕在线观看一区| 欧美又粗又大又爽| 日本不卡视频在线| 国产精品久久久久久久久动漫| 91网站在线播放| 秋霞国产午夜精品免费视频| 国产片一区二区| 欧美日韩色综合| 国产精品资源站在线| 亚洲精品国产无套在线观| 日韩一本二本av| 色综合夜色一区| 久久99国产精品久久| 亚洲女子a中天字幕| 亚洲成av人片一区二区三区| 日韩欧美国产一区在线观看| 丁香六月综合激情| 全国精品久久少妇| 亚洲男人天堂一区| 2020国产精品自拍| 欧洲精品视频在线观看| 国产高清在线精品| 午夜激情一区二区| ...xxx性欧美| 久久午夜色播影院免费高清| 在线免费观看日韩欧美| 国产一区二区在线电影| 日欧美一区二区| 亚洲免费观看高清完整版在线观看熊| 日韩欧美一区二区视频| 欧美日韩在线播放一区| 99精品国产99久久久久久白柏| 狠狠色2019综合网| 日产精品久久久久久久性色| 亚洲免费在线看| 国产精品国产自产拍高清av| 精品久久久久99| 欧美日韩一区中文字幕| 91麻豆免费在线观看| 懂色av一区二区三区免费观看| 久久超碰97人人做人人爱| 首页欧美精品中文字幕| 一区二区三区在线看| 中文字幕在线不卡| 国产亚洲午夜高清国产拍精品| 日韩欧美综合一区| 制服丝袜激情欧洲亚洲| 在线观看亚洲专区| 日本韩国欧美三级| 色先锋资源久久综合| 91在线观看视频| 97久久精品人人做人人爽| gogogo免费视频观看亚洲一| 国产成人综合亚洲91猫咪| 国产一区二区三区在线观看免费| 人人狠狠综合久久亚洲| 日本 国产 欧美色综合| 日韩av网站免费在线| 石原莉奈在线亚洲二区| 午夜精品福利一区二区三区av| 亚洲成人一二三| 视频一区中文字幕| 秋霞午夜鲁丝一区二区老狼| 老汉av免费一区二区三区| 美女网站色91| 国产精品99久久久久久宅男| 狠狠色狠狠色综合系列| 成人自拍视频在线观看| 99久久精品国产导航| 在线中文字幕不卡| 欧美日韩的一区二区| 91精品国产综合久久久久| 日韩女同互慰一区二区| 欧美成人精品1314www| 久久精品亚洲乱码伦伦中文| 国产精品全国免费观看高清| 亚洲男同1069视频| 日本在线观看不卡视频| 国产最新精品精品你懂的| 国产福利一区二区三区在线视频| 福利一区二区在线| 欧美亚洲图片小说| 欧美一区二视频| 国产三级一区二区| 亚洲女同ⅹxx女同tv| 日产精品久久久久久久性色| 国产精品亚洲成人| 色噜噜夜夜夜综合网| 亚洲最大成人综合| 免费观看一级特黄欧美大片| 国产精品一级在线| 在线免费亚洲电影| 久久久天堂av| 亚洲第一综合色| 粉嫩av一区二区三区在线播放 | 国产精品一区二区不卡| 色婷婷av一区二区三区大白胸| 91精品国产91久久综合桃花| 久久久不卡网国产精品二区| 亚洲精品视频一区| 激情五月婷婷综合| 欧美在线视频不卡| 国产婷婷色一区二区三区在线| 亚洲精品国产精品乱码不99| 极品尤物av久久免费看| 一本色道亚洲精品aⅴ| 精品免费国产二区三区| 亚洲国产一区二区视频| 岛国一区二区三区| 欧美大胆人体bbbb| 亚洲国产欧美在线人成| 成人综合在线网站| 精品日韩欧美一区二区| 亚洲尤物在线视频观看| 成人av资源在线观看| 久久影视一区二区| 亚洲成av人片在线| 一本一本大道香蕉久在线精品| 国产色产综合产在线视频 | 午夜电影网一区| 91在线观看美女| 国产精品久久久久久久久果冻传媒| 欧美美女一区二区| 亚洲色图制服丝袜| 丁香六月综合激情| 欧美激情自拍偷拍| 国产一区二区精品在线观看| 欧美电影在哪看比较好| 一区二区三区精品视频在线| 99久久精品99国产精品| 国产欧美日产一区| 国产麻豆成人传媒免费观看| 日韩免费福利电影在线观看| 日韩精品福利网| 欧美电影在哪看比较好| 亚洲成人综合网站| 9191国产精品| 日韩激情av在线| 日韩三级视频在线观看| 美腿丝袜亚洲色图| 欧美精品一区二区精品网|