注册 登录
编程论坛 汇编论坛

谁能帮我看看这个程序哪里有问题

liuxinyuan 发布于 2011-03-31 14:35, 645 次点击
ASCTOB   PROCNEAT
MOV      BX,CX
MOV      AL,[SI+BX-1]
CMP      AL,'B'
JE       LL1
CMP      AL,'Q'
JE       LL2
CMP      AL,'H'
JE       LL3
CMP      AL,'D'
JE       LL4
CMP      AL,'0'
JB       ERRO
CMP      AL,'9'
JA       ERRO
MOV      DI,10
MP       LL
LL1:MOV  DI,2
    JMP  LL5
LL2:MOV  DI,8
    JMP  LL5
LL3:MOV  DI,16
    JMP  LL5
LL4:MOV  DI,10
LL5:DEC  CX
LL:MOV   AX,0
NEXT:MOV  BL,[SI]
     MOV  BH,0
     SUB  BX,30H
     CMP  BX,10
     JL   BB
     CMP  BX,11H
     JL   ERRO
     SUB  BX,7
BB:CMP  BX,DI
   JAE  ERRO
   MUL  DI
   JC   ERRO
   ADD  AX,BX
   JC   ERRO
   INC  SI
   LOOP NEXT
ENDO:RET
ERRO:MOV  SI,-1
     JMP  ENDO
ASTOB     ENDP
5 回复
#2
zaixuexi2011-03-31 16:58
等晚上我帮你调试下看看
#3
liuxinyuan2011-03-31 17:04
感谢
#4
liuxinyuan2011-03-31 17:04
感谢
#5
zaixuexi2011-03-31 21:41
1. 你这个子程序编译不过,先检查一下(是不是你自己写的?)
2. 从字母和数字的组合看,好象是进制转换的程序
3. 发贴最好把问题描述清楚,让别人猜很累的
4.   CMP  BX,10
     JL   BB       ;<10转BB
     CMP  BX,11H
     JL   ERRO     ;(10,17)转ERRO       这边是不是有些问题呢
     SUB  BX,7     ;从你这句bx-7判断,上一句应该是JG ERRO,因为0~9-30H,A~F-37H
5. 其他的不想看了,你再琢磨琢磨先
#6
ansic2011-04-01 11:16
看子程序名, 像是将ASCII码转换成二进制码输出
1