0

我不知道我做错了什么。我在这段代码中的目标是增加b并打印它。代码的第一部分是计算插入字符串中的数字,如果计数器超过 9,第二部分应该增加 b。

据我了解, cpi应该比较它,如果它低于“0”或高于“9”并做出决定。但它现在正在工作,我不知道我在比较什么..

org 1000

dcx sp          

lxi h,text1 
call putstr     

mvi d,0         

char_loop:
    call getchar
    
    cpi 10          
    jz char_end
    
    cpi 13
    jz char_end
    
    cpi '0' 
    jc char_loop        
    
    cpi '9'+1
    jnc char_loop   
    
    inr d           
    jmp char_loop
char_end:

lxi h,text2     
call putstr

mov a,d
adi '0'         
call putchar
call newline

//second part

mvi b,0 


cpi '0'        ; Compare with '0'
jc ERR         ; Jump to ERR if A < '0'

cpi '9'      ; Compare with '9'
jz GOOD        ; Jump to GOOD if A == '9'

jnc ERR        ; Jump to ERR if A > '9'

GOOD:
inr b

ERR:
  
mov a,b
adi '0' 

call putchar
call newline

hlt
4

0 回答 0