首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

编译语言 无法生成任何文件 list也没有生成

2013-09-06 
汇编语言 无法生成任何文件 list也没有生成求 商品单价 输入 数量 总价格 但是编译时 没有生成相应文件 求

汇编语言 无法生成任何文件 list也没有生成
求 商品单价 输入 数量 总价格 但是编译时 没有生成相应文件 求解

代码如下
dseg segment
    prompt1  db 'the quantity of parts:$'
    prompt2  db 'the value of parts:$'
    crlf     db  0dh,0ah,'$'
    quantity db 8,?,8 dup(' ') 
    value    db 8,?,8 dup(' ') 
    qty      dw ?
    price    dw ?
dseg ends

stack segment stack
    db 200 dup(?)
stack ends

StrDisp macro message;显示宏
    lea dx, message
    mov ah, 09h
    int 21h
    endm

StrInput macro NumStr;输入
    lea dx,NumStr
    mov ah,0ah
    int 21h
    endm


cseg segment
main proc far
  assume cs:cseg,ds:dseg
start:
      push ds
      sub  ax,ax
      push ax
      mov  ax,dseg
      mov  ds,ax
begin: 

      StrDisp prompt1
      StrInput quantity
      StrDisp crlf
      StrDisp prompt2
      StrInput value
      StrDisp crlf

      call subconv;从键盘输入
      call subcalc
      call subdisp
      
      
      StrDisp crlf

      jmp  start
     ret

main endp

subconv proc near

     IRP reg,<ax,bx,cx,si,di>
     push reg
     endm

     lea  si,quantity
     mov  al,[si+1]
     cbw
     mov  cx,ax


     call decbin
     mov  qty,bx
     lea  si,value
     mov  al,[si+1]
     cbw
     mov  cx,ax
     call decbin
     mov  price,bx

     IRP reg,<di,si,cx,bx,ax>
     pop reg
     endm

     ret
subconv endp


decbin proc near
     mov  bx,0
digit: 
     mov  al,[si+2]
     inc  si
     sub  al,30h
     cbw
     xchg ax,bx
     mov  di,10
     mul  di
     xchg ax,bx
     add  bx,ax
     loop digit
     ret
decbin endp


subcalc proc near
     push ax
     push dx
     mov  ax,price 
     cwd
     div  qty
     mov  price,ax
     pop  dx
     pop  ax
     ret
subcalc endp

GetNumVal macro bit,NamProc
     mov bx,bit
     call NamProc
     endm

subdisp proc near
     push ax
     push bx
     mov  ax,price 
     GetNumVal 10000,bindec
     GetNumVal 1000,bindec
     GetNumVal 100,bindec
     GetNumVal 10,bindec
     mov  dl,al
     or   dl,30h
     mov  ah,02h
     int  21h
     pop  bx
     pop  ax
     ret
subdisp endp


bindec proc near
    mov  dx,0


a10:
    cmp  ax,bx
    jl   a20
    inc  dl
    sub  ax,bx
    jmp  a10
a20:
    push ax
    or   dl,30h
    mov  ah,02h
    int  21h
    pop  ax
    ret
bindec endp
cseg ends
    end start
      

      
[解决办法]
编译命令贴出来

热点排行