实验二 汇编语言程序设计

  • 格式:doc
  • 大小:22.50 KB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 $ ;暂停

相关主题