. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->内中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于程序返回  [待解决] 回复[ 2次 ]   点击[ 450次 ]  
xxie
[帖 主]   [ 发表时间:2013-12-08 18:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2011-07-19 12:12
程序测试通过了,但是最后只能返回到DEBUG中,不能返回到DOS里,为什么? 这样算正确了吗?

程序如下:
————————————————————————————————————————
 ASSUME    CS:CODESG

      CODESG  SEGMENT
      START:  MOV       AX,CS
              MOV       DS,AX
              MOV       AX,OFFSET B0
              MOV       SI,AX
              MOV       AX,0
              MOV       ES,AX
              MOV       DI,200H

              MOV       CX,OFFSET B0E-OFFSET B0
              CLD
              REP       MOVSB

              MOV       AX,0
              MOV       ES,AX
              MOV       WORD PTR ES:[0],200H
              MOV       WORD PTR ES:[2],0

              MOV       AX,4C00H
              INT       21H

         B0:  JMP       SHORT  B0S
              DB        "DIVIDE ERROR! "
        B0S:  MOV       AX,0B800H
              MOV       ES,AX
              MOV       AX,CS
              MOV       DS,AX
              MOV       SI,202H
              MOV       DI,40*2H+12*0A0H
              MOV       CX,14

        B0T:  MOV       AL,DS:[SI]
              MOV       ES:[DI],AL
              INC       SI
              ADD       DI,2
              LOOP      B0T

             
        B0E:  NOP

      CODESG  ENDS
              END       START
xxie
[第1楼]   [ 回复时间:2013-12-08 18:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2011-07-19 12:12
补充一下,上述是用除法溢出测试的。我总觉得是中断程序有问题,求指教。
no1handsome
[第2楼]   [ 回复时间:2019-08-28 20:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2019-08-28 20:30
你在BOE:NOP这行上加上下面这两行才能返回DOS

MOV       AX,4C00H 
INT       21H
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved