从输入字符串中提取子字符串 - 程序集

时间:2017-04-09 11:11:21

标签: assembly

我是汇编语言的初学者。我正在尝试从输入字符串中提取两个数字。例如。一个字符串输入,如“22 * 158”。我想分开并保存第一个数字,第二个数字和“*”。每个人都在不同的缓冲区。

这是我到目前为止所提出的。拜托,如果你知道更好的方式或最简单的方式帮助我。

INBUF   DB  100, ?, 100 DUP ?
SPACE   EQU ' ' ;define space character
ANUM1   DB  3, ?, 3 DUP ?


GETNUM1:  ; To know how many digit in the first number
      LEA   SI, INBUF+2    ;Point to the input I got
      CMP   [SI], SPACE 
      JE    GET1
      INC   CL              ; increament the number of digit in the first number
      INC   SI              ; pint to the next character
      JMP   GETNUM1         ; back to loop

然后,循环返回按照CL大小递减SI,并将每个SI移动到指向ANUM1的DI,如下所示:

SAVENUM1:
     MOV    AL, CL
     LEA    DI, ANUM1

LOOP2:
     DEC    SI
     MOV    DH, [SI]
     DEC    DI
     DEC    AL
     MOV    B[DI], DH
     CMP    AL, 0
     JNE    LOOP2
     RET

然后对第二个数字重复相同的事情。

0 个答案:

没有答案