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

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

?? mult.s

?? flint庫 RSA算法
?? S
字號:
#******************************************************************************#*                                                                            *#* Functions for arithmetic and number theory with large integers in C        *#* Software supplement to the book "Cryptography in C and C++"                *#* by Michael Welschenbach                                                    *#*                                                                            *#* Module mult.s           Revision: 15.06.2002                               *#*                                                                            *#*  Copyright (C) 1998-2005 by Michael Welschenbach                           *#*  Copyright (C) 2001-2005 by Springer-Verlag Berlin, Heidelberg             *#*  Copyright (C) 2001-2005 by Apress L.P., Berkeley, CA                      *#*  Copyright (C) 2002-2005 by Wydawnictwa MIKOM, Poland                      *#*  Copyright (C) 2002-2005 by PHEI, P.R.China                                *#*  Copyright (C) 2002-2005 by InfoBook, Korea                                *#*  Copyright (C) 2002-2005 by Triumph Publishing, Russia                     *#*                                                                            *#*  All Rights Reserved                                                       *#*                                                                            *#*  The software may be used for noncommercial purposes and may be altered,   *#*  as long as the following conditions are accepted without any              *#*  qualification:                                                            *#*                                                                            *#*  (1) All changes to the sources must be identified in such a way that the  *#*      changed software cannot be misinterpreted as the original software.   *#*                                                                            *#*  (2) The statements of copyright may not be removed or altered.            *#*                                                                            *#*  (3) The following DISCLAIMER is accepted:                                 *#*                                                                            *#*  DISCLAIMER:                                                               *#*                                                                            *#*  There is no warranty for the software contained in this distribution, to  *#*  the extent permitted by applicable law. The copyright holders provide the *#*  software `as is' without warranty of any kind, either expressed or        *#*  implied, including, but not limited to, the implied warranty of fitness   *#*  for a particular purpose. The entire risk as to the quality and           *#*  performance of the program is with you.                                   *#*                                                                            *#*  In no event unless required by applicable law or agreed to in writing     *#*  will the copyright holders, or any of the individual authors named in     *#*  the source files, be liable to you for damages, including any general,    *#*  special, incidental or consequential damages arising out of any use of    *#*  the software or out of inability to use the software (including but not   *#*  limited to any financial losses, loss of data or data being rendered      *#*  inaccurate or losses sustained by you or by third parties as a result of  *#*  a failure of the software to operate with any other programs), even if    *#*  such holder or other party has been advised of the possibility of such    *#*  damages.                                                                  *#*                                                                            *#******************************************************************************#*                                                                            *#*      Multiplication, interface compatible with C function mul_l()          *#*                                                                            *#*      Product := f1 * f2                                                    *#*                                                                            *#*      Stack on calling of mul:         SP+12 ---> Offset product            *#*                                       SP+ 8 ---> Offset f2                 *#*                                       SP+ 4 ---> Offset f1                 *#*                                       SP    ---> Return address            *#*                                                                            *#*      Return Value : ax = 0                                                 *#*                                                                            *#******************************************************************************#.equ    a,      0                       # CLINT factor 1 (working copy)     .equ    b,      520                     # CLINT factor 2 (working copy)     .equ    p,      1040                    # Product (storage space for result)#.equ    WORKSP, 2200                    # Working memory in stack area#.text.globl  multmult:   pushl   %ebp                    # Store base ptr for caller        movl    %esp,%ebp		                                  subl    $WORKSP,%esp            # Local memory                    movl    %esp,%eax               #   Store starting address        pushl   %edi        pushl   %esi        pushl   %ebx        movl    %eax,%ebx#        xorl    %eax,%eax        xorl    %edx,%edx        movl    8(%ebp),%esi            # Parameter f1        movl    12(%ebp),%edi           # Parameter f2        movw    (%esi),%ax        movw    (%edi),%dx        cmpw    $0,%ax                  # a = 0 ?        jne     .mult01        jmp     .multz.mult01:	cmpw    $0,%dx                  # b = 0 ?        jne     .mult02                 # Then we're done!        jmp     .multz##>>>>>> Load operands#.mult02: 	pushl   %edi                    # Store Seg:Offs f2                 leal    b(%ebx),%edi            # Destination offset is b[ebx]        movl    $0,%ecx			                                    movw    %ax,%cx                 # l(a) (length of a) in ecx         cld				                            rep     movsw                           # Load a in chunks of USHORT        movsw                           #  plus one USHORT                    movw    $0,(%edi)		                                    popl    %esi                    # Get offset of b	leal    a(%ebx),%edi            # Destination offset is a[ebx]        movw    %dx,%cx                 # l(b) in cx                        cld				  rep     movsw                           # Load b in chunks of USHORT        movsw                           #   plus one USHORT        movw    $0,(%edi)##>>>>>> Prepare access to local memory#        pushl   %ebp                    # BP retten        movl    %ebx,%ebp               # Basisind. Adr. in SS##>>>>>> Remove leading zeros from operands#        xorl    %eax,%eax        movw    b(%ebp),%ax             # #USHORTs in ax        cmpw    $0,%ax        je      .next1        shll    %eax        movl    %eax,%esi               # Index to high-order digit  .l1:    cmpw    $0,b(%ebp,%esi)		# USHORT = 0 ?                       jne     .l2                     # If not, then finished              subl    $2,%esi                 # Else: step back one USHORT         cmpl    $0,%esi                 # Index = 0 ?                        je      .mazer1                 # Then argument = 0                  jmp     .l1                     # Compare next               .l2: .mazer1:	shrl    %esi                    # #USHORTs        movl    %esi,%eax               # Store number of digits        movw    %ax,b(%ebp)#Operand2.next1: movw    a(%ebp),%ax             # #USHORTs in ax        cmpw    $0,%ax        je      .end1        shll    %eax                    # Index to high-order digit        movl    %eax,%esi.l3:    cmpw    $0,a(%ebp,%esi)         # Digit = 0 ?                          jne     .l4                     # If not, then finished                subl    $2,%esi                 # Else: step back one USHORT           cmpl    $0,%esi                 # Index = 0 ?                          je      .mazer2                 # Then argument = 0                    jmp     .l3                     # Compare next                 .l4: 					.mazer2: 	shrl    %esi                    # #Digits        movl    %esi,%eax               # ... store number of digits        movw    %ax,a(%ebp).end1:  cmpw    $0,%ax        jne     .l5        popl    %ebp        jmp     .multz.l5:    cmpw    $0,b(%ebp)        jne     .l6        popl    %ebp        jmp     .multz##>>>>>> Start multiplication##-----> Initialize working memory#.l6:    movl    $2,%esi                 # Prepare index i        movw    %dx,%cx                 # l(b)        shrw    %cx        jnc     .mult0        incw    %cx.mult0: movl    $0,%eax.mult1: movl    %eax,p(%ebp,%esi)        addl    $4,%esi        loop    .mult1##-----> Outer loop#        movl    $2,%esi                 # Index i        movl    $0,%ecx        movw    b(%ebp),%cx             # Prepare counter for outer loop        shrw    %cx        jnc     .mult2        incw    %cx.mult2: pushl   %ecx                    # Store counter##-----> Inner loop#        movl    $2,%edi                 # Index j        movw    a(%ebp),%cx             # Prepare counter for inner loop        shrw    %cx        jnc     .mult2a        incw    %cx.mult2a: 	xorl    %edx,%edx               # Dummy-carry        movl    b(%ebp,%esi),%ebx       # Load b[i]        addl    %edi,%esi               # Product index i+j.mult3: pushl   %ecx                    # Store counter         movl    %edx,%ecx               # carry u in dx        movl    %ebx,%eax        mull    a(%ebp,%edi)        addl    %ecx,%eax               # ax + u        adcl    $0,%edx        addl    %eax,p-2(%ebp,%esi)     # p[i+j-1]= ax + p[i+j-1]        adcl    $0,%edx                 # New carry u in dx        addl    $4,%edi                 # j=j+4        addl    $4,%esi                 # i+j=i+j+4        popl    %ecx                    # Get counter for inner loop        loop    .mult3##-----> End inner loop#        movl    %edx,p-2(%ebp,%esi)     # p[i+j-1]=u        subl    %edi,%esi               # Restore i        addl    $4,%esi                 # i=i+4        popl    %ecx                    # Get counter for outer loop        loop    .mult2##-----> End outer loop#        addl    %edi,%esi        subl    $4,%esi.mult3a: 	cmpw    $0,p(%ebp,%esi)        jne     .mult4        subl    $2,%esi        jmp     .mult3a.mult4: movl    %esi,%ecx        shrl    %ecx        movw    %cx,p(%ebp)##-----> Store product#        leal    p(%ebp),%esi        movl    %ebp,%ebx        popl    %ebp        movl    16(%ebp),%edi        cmpw    $0,%cx        je      .l7        cld                             # l(p) is still in counter cxrep     movsw.l7:    movsw##*******************************************************************************#       Security: Purge stack.muret: movl    %ebx,%edi        movl    $(WORKSP-4)/4,%ecx        cld        movl    $0,%eax                 # Return-Value = 0: OKrep     stosl                           # Overwrite with 0#*******************************************************************************#        popl    %ebx        popl    %esi                    # Restore registers for caller        popl    %edi        movl    %ebp,%esp        popl    %ebp        ret#.multz: movl    16(%ebp),%esi           # Product is 0        movw    $0,(%esi)        jmp     .muret#

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一级二级| 午夜久久电影网| 性久久久久久久久久久久| 久久aⅴ国产欧美74aaa| 91久久国产综合久久| 国产视频一区二区在线| 日韩中文字幕不卡| 色8久久精品久久久久久蜜| 精品国产乱码久久久久久闺蜜| 一区二区三区自拍| 国产大片一区二区| 欧美xxxxxxxx| 日产国产高清一区二区三区| 日本高清视频一区二区| 国产视频一区二区在线| 国产一区视频网站| 精品久久久久久久久久久久包黑料| 亚洲国产美女搞黄色| 91麻豆免费看| 亚洲特黄一级片| av在线不卡观看免费观看| 久久精品一二三| 国产一区二区在线影院| 日韩精品一区二区三区视频| 日韩成人免费看| 欧美一区二区三区视频免费播放| 亚洲第四色夜色| 欧美日韩在线三级| 亚洲一区在线视频| 欧美色精品天天在线观看视频| 亚洲品质自拍视频| 色婷婷久久久综合中文字幕| 一区二区三区在线观看动漫| 欧美天堂一区二区三区| 亚洲一二三区在线观看| 欧美日韩一区在线观看| 日韩一区欧美二区| 日韩欧美一区二区久久婷婷| 韩国女主播一区| 久久精品视频在线免费观看| 国产精品亚洲午夜一区二区三区 | 欧美自拍丝袜亚洲| 一区二区三区四区不卡在线| 色一情一乱一乱一91av| 亚洲综合色自拍一区| 欧美精品三级日韩久久| 国产无人区一区二区三区| 蜜臀a∨国产成人精品| 久久久亚洲精品石原莉奈| 精品婷婷伊人一区三区三| 成人av在线网| 91豆麻精品91久久久久久| 国产成人鲁色资源国产91色综| 国产黄色91视频| 春色校园综合激情亚洲| 亚洲h在线观看| 丁香啪啪综合成人亚洲小说 | 国产精品美女久久久久久 | 黄页网站大全一区二区| 精品国产123| 91在线看国产| 天堂av在线一区| 国产丝袜在线精品| 欧美日韩一区二区在线观看 | 波多野结衣中文字幕一区二区三区 | 久久精品人人做| 91在线免费看| 日本亚洲欧美天堂免费| 亚洲国产成人自拍| 欧美精品亚洲一区二区在线播放| 韩国女主播一区| 一区二区三区四区高清精品免费观看 | 色综合久久久久综合体| 视频一区二区中文字幕| 国产三区在线成人av| 欧美性极品少妇| 国产精品香蕉一区二区三区| 亚洲国产精品久久久久秋霞影院| 日韩视频免费直播| 色悠久久久久综合欧美99| 国模一区二区三区白浆| 亚洲最大成人网4388xx| 久久久精品国产免费观看同学| 欧美亚洲日本国产| 成人一区二区三区中文字幕| 99久久99久久免费精品蜜臀| 亚瑟在线精品视频| 国产精品国产三级国产aⅴ原创| 欧美一区二区在线播放| 在线视频国内一区二区| 国产福利一区二区| 蜜臀va亚洲va欧美va天堂| 亚洲免费在线看| 国产欧美日韩不卡| 欧美精品一区二区三区很污很色的| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美一区二区三区的| 色国产综合视频| 波多野结衣亚洲一区| 国产一区久久久| 久久av中文字幕片| 蜜桃av一区二区三区| 亚洲成年人影院| 一区二区三区四区乱视频| 综合中文字幕亚洲| 国产精品国产三级国产专播品爱网| 国产亚洲欧美中文| 26uuu成人网一区二区三区| 欧美人动与zoxxxx乱| 欧美三级中文字幕| 欧美三区免费完整视频在线观看| 在线观看一区二区视频| 99久久精品99国产精品| 国产成人在线色| 国产91富婆露脸刺激对白| 国产一区在线不卡| 国产一本一道久久香蕉| 国产精品1024久久| 成人小视频免费在线观看| 国产精品18久久久| 丰满放荡岳乱妇91ww| 国产69精品一区二区亚洲孕妇| 国产一区二区视频在线| 国产成人精品午夜视频免费 | 国产夜色精品一区二区av| 久久综合成人精品亚洲另类欧美 | 亚洲婷婷在线视频| 亚洲免费观看高清| 亚洲国产精品久久艾草纯爱| 日韩av在线播放中文字幕| 男女性色大片免费观看一区二区 | 婷婷开心激情综合| 免费一区二区视频| 国产成人午夜电影网| 91猫先生在线| 欧美精品高清视频| 精品欧美一区二区三区精品久久| 2024国产精品| 亚洲视频一区在线观看| 亚洲午夜三级在线| 麻豆专区一区二区三区四区五区| 国产自产高清不卡| 91视频免费播放| 欧美一区二视频| 中文字幕乱码久久午夜不卡| 亚洲主播在线播放| 国内精品久久久久影院色| 成人污污视频在线观看| 91国产视频在线观看| 欧美一区二区三区思思人| 欧美国产精品v| 午夜精品一区二区三区三上悠亚| 激情文学综合网| 在线视频国内自拍亚洲视频| 精品三级在线观看| 亚洲精选免费视频| 激情五月播播久久久精品| 日本精品裸体写真集在线观看| 日韩一区二区三区视频在线| 国产精品久久三区| 开心九九激情九九欧美日韩精美视频电影| 丁香激情综合国产| 3atv一区二区三区| 亚洲视频狠狠干| 国产精品一区在线观看乱码 | 91日韩精品一区| 日韩美女在线视频| 亚洲国产人成综合网站| 波多野结衣91| 欧美成人a∨高清免费观看| 亚洲伦理在线免费看| 国产成人在线网站| 欧美一级精品在线| 亚洲电影一级片| 91免费看视频| 国产三级一区二区| 精品一区二区三区日韩| 欧美卡1卡2卡| 亚洲精品国产精华液| 国产成人精品网址| 亚洲精品一区二区三区影院| 香蕉av福利精品导航| 91在线porny国产在线看| 国产拍欧美日韩视频二区| 日本亚洲免费观看| 51精品秘密在线观看| 亚洲国产视频一区二区| 91久久精品网| 亚洲免费三区一区二区| 国产精品18久久久久| 久久久久九九视频| 国产精品99久久久久久宅男| 日韩精品专区在线影院重磅| 日韩精品色哟哟| 91精品国产全国免费观看| 五月激情综合色| 6080午夜不卡| 日韩av在线发布| 日韩丝袜美女视频| 男人的j进女人的j一区|