实验二 汇编语言程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二汇编语言程序设计
一、查表程序
设计一个查表(一位数的平方表)程序,表格可按下列方法定义:
TABLE:DB 0,1,4,9,16,25,36,49,64,81。要查的数存放在20H中,用修改内存方法使之分别为2,5,8时,验证程序,看看查的结果是否为4,25,64.
参考程序:
INPUT_DATA EQU 20H
OUTPUT_DATA EQU 21H
TABLE EQU 0200H
ORG 0000H
LJMP START
ORG 0100H
START: MOV DPTR, #TABLE
MOV A,INPUT_DATA
MOVC A, @A+DPTR
MOV OUTPUT_DATA, A
SJMP $
ORG TABLE
DB 00H,01H,04H,09H,10H,19H
END
二、参考查平方表程序,设计求平方和的汇编程序
设a、b、c为单片机片内RAM中22H、23H、24H单元,用程序赋值a为3、b为4;参考上述查平方表程序,然后编写一段求两数的平方和的程序。设计程序并运行,运行结束后写出下列三单元值:
(22H)= 、(23H)= (24H)=
三.将30H单元内的两位BCD码拆开,存入片内RAM的31H、32H两个单元中(高位存31H、低位存32H)。
参考程序如下:
MOV 30H,#78H ;30H单元赋值7、8两位BCD码
MOV A,30H ;取值
ANL A,#0FH;取低4位
MOV 32H,A ;保存结果
;设计补充程序,完成高位BCD码的提取及存放
……
SJMP $
END
设计程序并运行,运行结束后写出下列三单元值:
(30H )= 、(31H )= (32H )=
四.将上述31H 、32H 两个单元中的非压缩BCD 码值,重新压缩成1个压缩BCD 码,并存入30H 。
设计程序并运行,运行结束后写出下列三单元值:
(30H )= 、(31H )= (32H )=
五.分支程序设计
设X 存放在30H 单元中,根据下式
⎪⎩
⎪⎨⎧<=>+=0||010002X X X X X Y ,求出Y 值,将Y 值存入31H 单元。
参考程序:
MOV A ,30H ;取数
JB ACC.7,NEG ;负数,转NEG
JZ ZERO ;为零,转ZER0
;为正数,求Y=X+2
AJMP SA VE ;转到SAVE ,保存数据
ZERO : ;数据为零,Y=100
AJMP SA VE ;转到SAVE ,保存数据
NEG : ;求∣X ∣
;求∣X ∣
SAVE : ;保存Y 值存入31H 单元
SJMP $ ;暂停