如何在汇编中使用CLR和JC?

时间:2017-12-12 16:47:19

标签: assembly emu8086

     ORG 0100H
INIT:               
        MOV AL,99H
        OUT 06,AL
        MOV AL,0
        OUT 02,AL
        MOV TEMP,01DH
LOOP:   CALL ADC
        CALL HEX2ASC
        CLR C
    SUB AL,TEMP
    JC TEMPLO
    CLR AL
    JMP TEMP1
TEMPLO: MOV AL,20H
TEMP1:  OUT 02,AL
        JMP LOOP
ADC:    IN AL,00
        MOV BL,AL
    IN AL,00
    CLR C
    SUB AL,BL
    JNZ ADC
    MOV AL,BL
    RET
HEX2ASC: PUSH AX
        MOV CL,4
    ROR AL,CL
    CALL DISPLAY
    POP AX
    CALL DISPLAY
    MOV CX,2
BACKSP: PUSH CX
        MOV AL,08
    CALL FPUTC
    POP CX
    DEC CX
    JNZ BACKSP
    RET
DISPLAY: AND AL,0FH
        CMP AL,0AH
    JC DISP1
    ADD AL,7
DISP1   ADD AL,30H
        CALL FPUTC
    RET
FPUTC:  PUSHF 
        PUSH DX 
    PUSH CX 
    PUSH AX
        XOR CX,CX
    MOV ES,CX
    MOV BYTE PTR ES:[01E5],5E
    MOV AH,24
    MOV ES:[01E5+1],AX
    MOV AL,06
    INT 06
    POP AX
    POP CX
    POP DX
    POPF 
    RET A
TEMP:    DS 1

我把这个代码形成了一本书但是当我使用代码时显示错误

(10)非法指令:CLR C或错误的参数。

(13)非法指令:CLR AL或参数错误。

(21)非法指令:CLR C或错误的参数。

(42)未声明的标签:JC DISP1

我如何解决这些错误?

1 个答案:

答案 0 :(得分:0)

为什么会出现非法指令错误?

emu8086抛出非法指令的原因是因为指令CLR实际上不属于8086指令集,而是8051微控制器的指令。该指令用于清除进位标志(将进位标志设置为0)或清除8051微控制器中的寄存器内容。另一方面,可以使用CLC指令清除emu8086中的进位标志。

8051汇编工具

可用于8051组装的工具是 8051微控制器的Keil开发工具 ,您可以通过以下{herethese下载相同的工具。 {3}}说明。有关学习8051程序集的教程,您可以观看these个视频。