回 帖 发 新 帖 刷新版面

主题:一定给30分!!!

看看我编的东西,题目是要显示那十个式子:1-0=1 2+2=4 3-1=2 4-3=1 5-5=0 6+4=10 
7-6=3 8-5=3 9+8=17 0+9=9 我是刚学的有些不是我编的,但很多是我自己变化的,本来是不显示的,我主要是把它显示一下,但水平有限还忘多帮帮,高手!!!!!
datarea segment
  x            dw            1,2,3,4,5,6,7,8,9,0

  y            dw            0,2,1,3,5,4,6,5,8,9

  z            dw            1,4,2,1,0,10,3,3,17,9

  logic_rule   dw            00dch
datarea ends

prognam segment

main      proc     far

  

  assume cs:prognam,ds:datarea



start:



          push     ds
 
          sub      ax,ax
        
          push     ax
 
      
          mov      ax,datarea

          mov      ds,ax

          

          mov      di,0

          mov      dh,10

          mov      sp,logic_rule

next:     mov      si,x[di]
          
          mov      bx,si
          mov    ch,4 

rotate:      mov    cl,4

             rol    bx,cl

             mov    al,bl

             and    al,0fh

             add    al,30h

             cmp    al,3ah

             jl     printit

             add    al,7h

printit:
              
             mov    dl,al

             mov    ah,2B

             int    21h

             dec    ch

             jnz    rotate
          shr      sp,1

          jc       subtract

          add      si,y[di]
            mov      bx,y[di]
          mov    ch,4 

you:      mov    cl,4

             rol    bx,cl

             mov    al,bl

             and    al,0fh

             add    al,30h

             cmp    al,3ah

             jl     your

             add    al,7h

your:
              
             mov    dl,al

             mov    ah,3D
              
             int    21h
           
             dec    ch
             jnz    you
          jmp      short result

subtract: 
       
          sub      si,y[di]
           mov      bx,y[di]
          mov    ch,4 

hao:      mov    cl,4

             rol    bx,cl

             mov    al,bl

             and    al,0fh

             add    al,30h

             cmp    al,3ah

             jl     zhenhao

             add    al,7h

zhenhao:
              
             mov    dl,al

             mov    ah,2D
            
             int    21h 
               dec    ch
             jnz    hao
result:   mov      z[di],ax
           mov     bx,z[di]
             mov    ch,4 

nihao:      mov    cl,4

             rol    bx,cl

             mov    al,bl

             and    al,0fh

             add    al,30h

             cmp    al,3ah

             jl     wohao

             add    al,7h

wohao:
              
             mov    dl,al

             mov    ah,2

             int    21h

             dec    ch

             jnz    nihao
          add      di,2

          dec      dh
          jnz      next
          
          
          ret
 
main      endp

prognam   ends

          end      start                                               


 
        错误2011.ASM(70): error A2107: Non-digit in number
            2011.ASM(178): error A2053: Jump out of range by 27 byte(s)

     有两个错误!!!!

回复列表 (共2个回复)

沙发

错误1;2B是一个16进制数,所以要写成0x2B
错误2:换个编译器(masm6.0--masm6.15随便一个,在高了不行,低也不行).

板凳


谢谢了!我试试看!!![em2][em2][em2]

我来回复

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