主题:这个程序有什么错误啊??
;要求:
;主程序mainpro允许用户在键盘上输入零件数量和单价
;子程序subconv把ascii码装换为二进制数
;子程序subclac计算出零件的价格
;子程序subdisp把二进制表示的单价转换为十进制数并显示出结果
data segment
mes1 db 'Please input the number:','$'
mes2 db 'Please input the price:','$'
data ends
;...................
stack segment
sta db 32 dup(0)
sp_top db 0
stack ends
;...................
code segment
mainpro proc far
assume cs:code, ss:stack, ds:data
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,offset sp_top
mov dx,offset mes1 ;number
mov ah,09h
int 21h
mov ah,01h ;输入数量
int 21
call subconv ;ascii装换为二进制
mov bl,al
mov dx,offset mes2 ;price
mov ah,09h
int 21h
mov ah,01h ;输入价格
int 21h
call subconv ;ascii装换为二进制
call subclac ;计算零件价格
call subdisp ;二进制转换为十进制并显示
mov ax,4c00h
int 21h
mainpro endp
;------------------
subconv proc near ;ascii装换为二进制
and al,0fh
subconv endp
;-------------------
subclac proc near ;计算零件价格
mul bl
aam
subclac endp
;-----------------
subdisp proc near ;二进制转换为十进制并显示
or ax,3030h
mov dl,ah ;输出结果的高位
mov ah,02h
int 21h
mov dl,al ;输出结果的低位
mov ah,02h
int 21h
subdisp endp
;----------------
code ends
;.......................
end start
;主程序mainpro允许用户在键盘上输入零件数量和单价
;子程序subconv把ascii码装换为二进制数
;子程序subclac计算出零件的价格
;子程序subdisp把二进制表示的单价转换为十进制数并显示出结果
data segment
mes1 db 'Please input the number:','$'
mes2 db 'Please input the price:','$'
data ends
;...................
stack segment
sta db 32 dup(0)
sp_top db 0
stack ends
;...................
code segment
mainpro proc far
assume cs:code, ss:stack, ds:data
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,offset sp_top
mov dx,offset mes1 ;number
mov ah,09h
int 21h
mov ah,01h ;输入数量
int 21
call subconv ;ascii装换为二进制
mov bl,al
mov dx,offset mes2 ;price
mov ah,09h
int 21h
mov ah,01h ;输入价格
int 21h
call subconv ;ascii装换为二进制
call subclac ;计算零件价格
call subdisp ;二进制转换为十进制并显示
mov ax,4c00h
int 21h
mainpro endp
;------------------
subconv proc near ;ascii装换为二进制
and al,0fh
subconv endp
;-------------------
subclac proc near ;计算零件价格
mul bl
aam
subclac endp
;-----------------
subdisp proc near ;二进制转换为十进制并显示
or ax,3030h
mov dl,ah ;输出结果的高位
mov ah,02h
int 21h
mov dl,al ;输出结果的低位
mov ah,02h
int 21h
subdisp endp
;----------------
code ends
;.......................
end start