ORG 0000H
MOV DPTR,#TAB DPTR此时指向0C0H,以后由于A值的不停加1会不停的往后指,在循环
MAIN:MOV R5,#0 给初值
MOV A,R5A=0
LP: MOVC A,@A+DPTR 查表
MOV P1,A显示
MOV A,R5
INC A 加1
MOV R5,A
LCALL DELAY 延时
CJNE A,#10,LP 是否 到9.
SJMP MAIN
DELAY:MOV R3,#255
DEL1: MOV R4,#255
DEL2: NOP
DJNZ R4,DEL2
DJNZ R3,DEL1
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H共阳字符。0-9。
END 如有疑问,可以HI我。。
在数据区,以table 开始连续存放0-9的立方值,设任给一数x x在tab1单元,查表求x的立方值 并把结果存到tab2 要求输入的数及最后结果要显示在屏幕上
assume cs:code, ds:data
data segment
table dw 0, 1, 8, 27, 64, 125, 216, 343, 512, 729
display db 0AH, 0DH, "Please input a number(0~9): ", '$'
tab1 db 5
db ?
db 5 dup (0)
tab2 dw ?
dis db 3 dup ('0'), '$'
crlf db 0AH, 0Dh, '$'
data ends
code segment
start:
mov ax, data
mov ds, ax
mov dx, offset display
mov ah, 9
int 21h
mov dx, offset tab1
mov ah,10
int 21h
mov al, tab1+2
sub al, 30h
add al, al
sub bx, bx
mov bl, al
mov ax, table[bx]
mov tab2, ax
mov bl, 2
mov cl, 10
lp: div cl
add ah,30H
mov byte ptr dis[bx], ah
dec bl
sub ah,ah
cmp al, 0
jne lp
mov dx, offset crlf
mov ah, 9
int 21h
mov ah, 9
mov dx, offset dis
int 21h
exit: mov ax, 4c00h
int 21h
code ends
end start
PS:若有不明白的地方,可以追问
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)