正负数.asm

来自「我学单片机89C51时编的大部分程序都在里面」· 汇编 代码 · 共 36 行

ASM
36
字号
ORG 0000H
LJMP START
ORG 0030H
START:  MOV DPTR,#TAB;取数
        MOV R0,#40H;正数存放区域首地址
        MOV R1,#00H
        MOV R6,#10H;总数数目
        MOV P2,#0B0H

MAIN:   MOV A,#00H
        MOVC A,@A+DPTR
        JB ACC.7,NEG ;negative?
        MOV @R0,A ;
        INC R0
        LJMP LOOP
NEG:    MOVX @R1,A
        INC R1
        LJMP LOOP
LOOP:   INC DPTR
        DJNZ R6,MAIN

        MOV R7,#08H ;       初值
        MOV DPTR,#0B000H
        MOV R0,#48H

ABS:    MOVX A,@DPTR
        ANL A,#7FH;取绝对值
        MOV @R0,A
        INC R0
        INC DPTR
        DJNZ R7,ABS     ;

 TAB:   DB  12H,89H,13H,0A1H,34H,42H,93H,0B3H
        DB  22H,15H,83H,0C1H,35H,52H,0D3H,0A3H
          SJMP $

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?