永发信息网

汇编语言字除法,如果AX寄存器中商大于FFFFH怎么办?

答案:1  悬赏:80  手机版
解决时间 2021-04-05 04:02
汇编语言字除法,如果AX寄存器中商大于FFFFH怎么办?
最佳答案
这个时候就溢出了。需要编制专门的子程序处理,以下是一种实现:

;***********************************************************           
        DIVI  PROC      NEAR
              PUSH      SI
              PUSH      DI
              PUSH      BP
              PUSHF
              ; 被除数置于 dx,ax  (32位) 
              ; 除数置于 bx (16位) 
              ; 商置于 dx,ax
              ; 余数置于 cx
              ;------------------- 
              ;PUSH      BX
              ;POP       BP
              MOV       WORD PTR [R_BX], BX
              MOV       WORD PTR [RE_DIV],0
              MOV       WORD PTR [RE_DIV+2],0
              MOV       BP,08000H   ; 检查被除数的最高位是否为1
              AND       BP,DX       ; 是 则超出计算上限 ,直接退出
              CMP       BP,08000H
              JE        @DIVIEXIT
              CMP       DX,0
              JNE       @DIVI0
              CMP       AX, WORD PTR [R_BX]
              JNC       @DIVI0
              JMP       @DIVIEXIT
     @DIVI0:
              MOV       DI,0
              MOV       SI, WORD PTR [R_BX]
              MOV       CX,1
              MOV       BX,0
     @DIVI1:  PUSH      AX
              PUSH      DX
              SUB       AX,SI
              SBB       DX,DI
              JC        @DIVI2
              SHL       SI,1
              RCL       DI,1
              SHL       CX,1
              RCL       BX,1
              POP       DX
              POP       AX
              JMP       @DIVI1
     @DIVI2:  SHR       DI,1
              RCR       SI,1
              SHR       BX,1
              RCR       CX,1
              POP       DX
              POP       AX
              SUB       AX,SI
              SBB       DX,DI
              ADD       WORD PTR [RE_DIV],CX
              ADC       WORD PTR [RE_DIV+2],BX
              ;---------------------
              CMP       DX,0
              JNE       @DIVI0
              CMP       AX, WORD PTR [R_BX]
              JNC       @DIVI0
              ;----------------
              PUSH      AX
              MOV       DX,WORD PTR [RE_DIV+2]  ; 商的高位
              MOV       AX,WORD PTR [RE_DIV]    ; 商的低位
              POP       CX          ; 余数
              MOV       BX, WORD PTR [R_BX]
              ;----------------
              POPF
              POP       BP
              POP       DI
              POP       SI
              RET
      RE_DIV  DD        0
        R_BX  DW        ?
  @DIVIEXIT:
              MOV       CX,AX
              MOV       DX,0
              MOV       AX,0
              MOV       BX,WORD PTR [R_BX]
              POPF
              POP       BP
              POP       DI
              POP       SI
              RET
        DIVI  ENDP
;********************************************************
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
邮政储蓄银行跨行转入农行不到帐应该找哪一方
变量名是什么,SPSS中相关分析和回归分析是不
续写或改写典范英语2b第12课
君子爱财,取之有道,视之有度,用之有节 的完整
Though our city has a good public transpor
赌石的bl小说
为什么好多人喜欢 马勒和布鲁克纳
关于江边饮酒酒的语句,中秋江边喝酒古诗!!
东风风神a60轮胎用的是什么品牌的
咨询家庭测甲醛怎样找到正规部门检测
网络信号满格但是网速很慢怎么回事
他很辛苦英文怎么说,“她每天都很开心”用英
单选题一个数和它的相反数的积(0的相反数是0)
染头发深金色和中金色哪个比较显眼好看的?
平顶山从总医院到山顶公园坐几路车合适
推荐资讯
夏普lcd50u1A用网络会卡死在页面吗
写出ABCc。的成语有。
钻床上的型号z3o.50x16是什么意思
落地的一刹那的意思,一刹那的意思
颈肩部肌肉拉伤会导致手发麻吗
老实人,认真做事,付出和回报不成正比,苦逼
物价都涨了,工资没涨,收入和支出不成正比,
表达对选择后悔的诗词,怎么学好英语?
单选题下列句中有通假字的一项是A.既而风定天
单选题把xmLCO2通过足量的Na2O2后,再与ymLNO
商家欺骗消费者说过话不承认怎么办
---Areyoufeeling________?---Yes,I’mfineno
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?