汇编语言编写一简单查表程序

汇编语言编写一简单查表程序,第1张

0-9循环显示,经验证完全无误。。谢谢采纳。

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:若有不明白的地方,可以追问


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11073797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存