当前位置:编程学习 > 汇编语言 >>

汇编语言中ADC怎么调用? 我要用汇编运行12345+67890=80235全部显示出来,但是不成功,不知道错哪了。

我用DEBUG 调试出在ADC那里跳过了,不知道怎么回事?请高手赐教! DATAS SEGMENT X DB 1,2,3,4,5 Y DB 6,7,8,9,0 Z DB 6 DUP(?) DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV CX,5 MOV SI,0 K1: MOV DL,X[SI] ADD DL,30H MOV AH,02H INT 21H INC SI LOOP K1 MOV DL,'+' MOV AH,02H INT 21H MOV CX,5 MOV SI,0 K2: MOV DL,Y[SI] ADD DL,30H MOV AH,02H INT 21H INC SI LOOP K2 MOV DL,'=' MOV AH,02H INT 21H CLC PUSHF MOV CX,5 MOV SI,4 K3: MOV DL,X[SI] POPF ADC DL,Y[SI] MOV AL,DL AAA PUSHF MOV Z[SI+1],AL DEC SI LOOP K3 MOV CX,5 MOV SI,0 K4: MOV DL,Z[SI] MOV DL,30H MOV AH,02H INT 21H INC SI LOOP K4 MOV AH,4CH INT 21H CODES ENDS END START
补充:已解决,谢谢各位!
追问:还是不行……
答案:已经解决了?
是不是和下面的改动类似?

……
    MOV  DL, '='
    MOV  AH, 02H
    INT  21H
;---------------下面是5位非压缩的BCD码相加.
    CLC             
    MOV  SI, 4
    MOV  CX, 5
K3: MOV  AL, X[SI]
    ADC  AL, Y[SI]
    AAA
    MOV  Z[SI + 1], AL
    DEC  SI
    LOOP K3  
;---------------下面第6位BCD码.
    ADC  AL, 0
    MOV  Z, AL

;---------------下面是6位和的BCD码显示.
    MOV  CX, 6   ;5
    MOV  SI, 0
……
其他:我觉得你的堆栈段不完整,使得堆栈操作不能正常执行,你改成如下试试:
STACKS SEGMENT  STACK
      DW  10 DUP (?)
STACKS ENDS 期待 

上一个:大家好,我想问一下单片机C语言中有没有带进位的循环右移或者左移的指令,与汇编语言中的RRC或者RLC类似。
下一个:汇编语言MOV指令

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,