汇编题:试编写一个程序,用查表的方法求-9~9的平方和。

汇编题:试编写一个程序,用查表的方法求-9~9的平方和。,第1张

; 本程序在MASMPlus 12集成环境下通过编译,经过调试,运行正确。

Code Segment

Assume CS:Code,DS:Code

; -------------------------------------

; 功能:显示指定地址(Str_Addr)的字符串

; 入口:

; Str_Addr=字符串地址(要求在数据段)

; 用法: Output Str_Addr

; 用法举例:Output PromptStr

Output MACRO Str_Addr

lea dx,Str_Addr

mov ah,9

int 21h

EndM

; -------------------------------------

Table_Data db 0,1,4,9,16,25,36,49,64,81 ;平方值表

Press_Key db 7,13,10,13,10,'The complated Press any key to exit$'

Start: push cs

pop ds

lea bx,Table_Data ;表地址

mov al,-9 ;自变量初值

xor ah,ah

xor dx,dx ;平方和初值

mov cx,19 ;自变量数

Find_Table: push ax

test al,al

jns $+4 ;不是负数,直接查表

neg al ;负数,求补(绝对值)

xlat ;查表

add dx,ax ;累加平方和

pop ax

inc al ;自变量增1

loop Find_Table

; -9~9的平方和保存在寄存器DX中

; -------------------------------------

Exit_Proc: Output Press_Key ;提示 *** 作完成,按任意键结束程序

mov ah,1

int 21h

mov ah,4ch ;结束程序

int 21h

Buffer dw , ;数据缓冲区

Code ENDS

END Start ;编译到此结束

16和7是查表指令时的PC与数据表格之间的字节数

MOV A ,@R0 ;取R0指向的地址中的数据到A

ANL A,#0FH ;高四位清零

ADD A,#16 ;加16

MOVC A, @A+PC ;查表,表的首地址为绝对地址PC+A

MOVC A,@A+PC就需要1个字节啊

查表指令距离表首地址的长度是字节数

用DPTR的汇编程序:

ORG 0100H

MOV 30H,#12H

MOV 31H,#34H

MOV 32H,#56H

MOV 33H,#78H

LCALL SUBRTE

ORG 1000H

SUBRTE: MOV R0,#30H ; ;置地址指针R0初值

MOV R1,#40H ; ;置地址指针R1初值

MOV R2,#4 ; ;置字节数

LOOP: MOV A,@R0 ; ;取16进制数

ANL A,#0FH ; ;屏蔽高4位

MOV DPTR,#TABLE ; ;

MOVC A,@A+DPTR ; ;查表低4位转换为ASCⅡ码

MOV @R1,A ; ;送结果

INC R1 ; ;修改指针

MOV A,@R0 ; ;从新取16进制数

SWAP A ; ;高4位与低4位互换

ANL A,#0FH ; ;取高4位

ADD A,#7

MOVC A,@A+PC ; ;查表高4位转换为ASCⅡ码

MOV @R1,A

INC R0

INC R1

DJNZ R2,LOOP

DEC R1

RET

TABLE: DB '012345678'

DB '9ABCDEF'

END

建表太麻烦了,我就把中间用到的关键指令给楼主吧(注:我用的是nasm)

mov al,[十六进制值]

mov bx,表首地址

xlat

这三步即可使得al中的结果为对应十六进制数的ASCII码了。

以上就是关于汇编题:试编写一个程序,用查表的方法求-9~9的平方和。全部的内容,包括:汇编题:试编写一个程序,用查表的方法求-9~9的平方和。、MCS-51单片机查表程序、用汇编语言编写源程序:用查表方法,将一位十六进制数转换成其ASCII码,并储存。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9867547.html

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

发表评论

登录后才能评论

评论列表(0条)

保存