回 帖 发 新 帖 刷新版面

主题:加法程序中的问题(上)

;==========================================================
  请大家看看下面的程序段中有什么不适之处
  功能:完成两个4位十进制数的相加,并以十进制显示加相结果
  我的emu8086 3.27中调试运行通过,计算结果也正确,但是用该软件生成的EXE文件却
  在XP中无法运行(输入数字后一闪窗口就没有了),进入命令行,运行该程序时相加的结 果总是不对.
   
              stack segment
                    dw       100  dup (?)
              stack ends

               data segment

               data ends

               code segment
                    assume   cs:code,ds:data,ss:stack
             start:

            ;主程序
                    mov      ax,data
                    mov      ds,ax

                    call     inputnum

                    mov      ax,bx           ; 输入第一个数

                    call     enter1          ;回车换行


                    call     inputnum        ;输入第二个数

                    call     addnum          ;相加

                    call     enter1          ;回车换行

                    call     dispnum         ;显示相加结果

                    mov      ax,4c00h
                    int      21h

               ;=========================================================

             enter1 proc
                    push     ax
                    push     bx
                    push     cx
                    push     dx

                    mov      ah,02
                    mov      dl,13
                    int      21h
                    mov      dl,10
                    int      21h

                    pop      dx
                    pop      cx
                    pop      bx
                    pop      ax

                    ret

             enter1 endp

             ;==========================================================
;下续 --------加法程序中的问题(下)

回复列表 (共1个回复)

沙发

麻烦问一下
你的EMU8086是怎么设置的
为什么我的老是不能通过
老是说没有什么65h instruction
怎么回事?

我来回复

您尚未登录,请登录后再回复。点此登录或注册