主题:加法程序中的问题(上)
;==========================================================
请大家看看下面的程序段中有什么不适之处
功能:完成两个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
;==========================================================
;下续 --------加法程序中的问题(下)
请大家看看下面的程序段中有什么不适之处
功能:完成两个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
;==========================================================
;下续 --------加法程序中的问题(下)