完整版华电微机原理与技术汇编语言题目及答案.docx

上传人:b****3 文档编号:4631702 上传时间:2023-05-07 格式:DOCX 页数:12 大小:43.31KB
下载 相关 举报
完整版华电微机原理与技术汇编语言题目及答案.docx_第1页
第1页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第2页
第2页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第3页
第3页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第4页
第4页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第5页
第5页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第6页
第6页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第7页
第7页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第8页
第8页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第9页
第9页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第10页
第10页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第11页
第11页 / 共12页
完整版华电微机原理与技术汇编语言题目及答案.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

完整版华电微机原理与技术汇编语言题目及答案.docx

《完整版华电微机原理与技术汇编语言题目及答案.docx》由会员分享,可在线阅读,更多相关《完整版华电微机原理与技术汇编语言题目及答案.docx(12页珍藏版)》请在冰点文库上搜索。

完整版华电微机原理与技术汇编语言题目及答案.docx

完整版华电微机原理与技术汇编语言题目及答案

一微机原理与接口技术汇编题目

(1)数据块传送

1、将数据段中2000H单元开始存放的10个数(8位数)传送到3000H开始的10个字节中。

2、将数据段DATA1中的10个字数据(16位数)传送到数据段DATA2中。

提示:

1、指定数据的起始地址:

(如果不指定起始地址,则起始地址为0000H)

DATASEGMENT

ORG2000H

DB1,,2,3,4,5,6,7,8,9,10;DB定义字节数据

ORG3000H

DB10DUP(0);预留10个单元存放结果,初值预定义为0

DATAENDS

定义的内存单元为:

地址

内容(H)

2000H

1

2001H

2

2002H

3

2003H

4

2004H

5

2005H

6

2006H

7

2007H

8

2008H

9

2009H

0A

2、定义字数据命令为:

DW

DATA1SEGMENT

DW1,,2,3,4,5,6,7,8,9,10;DW定义字数据

DATA1ENDS

一个字为两个字节,在内存中低位在前,高位在后。

地址(H)

内容(H)

0000

01

0001

00

0002

02

0003

00

0004

03

0005

00

0006

04

0007

00

0008

05

0009

00

000A

06

000B

00

000C

07

000D

00

000E

08

000F

00

0010

09

0011

00

0012

0A

0013

00

(2)查表

1、已知0~15的平方值表,查表求X(X是0到15间任一数)的平方值,送到Y单元,用两种方法。

2、已知0~255的平方值表,查表求X的平方值,送到Y单元。

提示:

0到15的平方表,每个平方值为一个字节;

0到255的平方表,每个平方值为2个字节;调试程序,平方表中的数据定义几个就行,目的是程序正确即可。

一个字为两个字节,在内存中低位在前,高位在后。

(3)计算

1、计算多字节数据1122334455667788H与99AABBCCDDEEFF00H的和。

2、计算8字节的BCD码十进制数1122334455667788H与9988776655443322H的和

3、计算10个字数据的和(数据自己定义)。

提示;

1、多字节数据在内存中存放,低位在前,高位在后

DAT1DB88H,77H,66H,55H,44H,33H,22H,11H

DAT2DB00H,0FFH,0EEH,0DDH,0CCH,0BBH,0AAH,99H

DAT3DB9DUP(0)

地址

数据

DAT1

0000

88

0001

77

0002

66

0003

55

0004

44

0005

33

0006

22

0007

11

DAT2

0008

00

0009

FF

000A

EE

000B

DD

000C

CC

000D

BB

000E

AA

000F

99

DAT3

0010

0011

0012

0013

0014

0015

0016

0017

0018

2、BCD十进制加法

二进制加法指令:

ADD

BCD十进制加法:

ADD

DAA;十进制调整指令,仅对AL作为加法的累加和寄存器进行调整

(4)计算表达式的值

1计算表达式

的值,已知X=10,Y=5。

提示:

XDB10

YDB5

ZDB?

AL=X-Y

BL=7

AX=AL*BL

BH=Y+2

AL=AX/BH的商

AH=AX/BH的余数

(5)找最大、最小数

1、找出2040H单元和2041H单元的大数,并送2042H单元(数据自己定义)

2、找出10个数(8位数)里的最大数(数据自己定义)

3、找出10个数(16位数)里的最小数(数据自己定义)

(6)统计正数、负数个数

1、找出10个数(8位数)里的正数个数(数据自己定义)

2、找出10个数(16位数)里的负数个数(数据自己定义)

(7)数据块比较

1、分别在FARD1和FARD2单元开始存放了10个字节数据,编程比较是否一致(数据自己定义)。

2、分别在FARD1和FARD2单元开始存放了10个字数据,编程比较是否一致(数据自己定义)。

(8)逻辑运算

1、在数据段3000H单元开始存放了数字0~9的ASCII码,求对应的十进制数字并存放到3500H开始的单元;再将3500H开始的十进制数字转换为对应的ASCII码,存放到3800H开始单元。

提示:

数字转换方法:

例如:

数字‘5‘的ASCII为35H(00110105B),想办法变为05H(00000105B),存入对应的单元,然后再将05H(00000105B),变为35H(00110105B)存入对应的单元。

DATASEGMENT

ORG3000H

DB‘0123456789’;DB定义字节数据

ORG3500H

DB10DUP(?

);预留10个单元存放结果

ORG3800H

DB10DUP(?

);预留10个单元存放结果

DATAENDS

(9)输入输出

1、在显示器上输出字符串‘HELLO!

’。

2、从键盘输入一组字符串,存入到BUFFER数据区(自己定义)中。

3、将十进制数25从显示器上输出。

4、将数据段中的10个个位数数据从显示器上输出。

以上各题做为练习使用!

提示:

1、显示字符串

2、键盘输入一组字符串

方法1用10号调用,

方法2用1号调用,设置循环次数

3、将十进制数25从显示器上输出。

想办法把25的十位和个位拆开,再分别变为ASCII,先显示2,后显示5

3、将数据段中的10个个位数数据从显示器上输出。

从数据段中直接定义10个个位数据,取出数据后,变为变为ASCII,显示

二实验过程参考步骤

题目

1、将数据段中2000H单元开始存放的10个数(8位数)传送到3000H开始的10个字节中。

源程序:

数据定义

DATASSEGMENT

ORG2000H

DATA1DB1,2,3,4,5,6,7,8,9,10

ORG3000H

DATA2DB10DUP(0)

DATASENDS

CODESSEGMENT

START:

MOVAX,DATAS

MOVDS,AX

MOVSI,2000H

MOVDI,3000H

MOVCX,10

NEXT:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

DECCX

JNZNEXT

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

运行前内存分布:

程序运行前2000H:

0102030405060708090A

3000H:

00000000000000000000

程序运行后2000H:

0102030405060708090A

3000H:

0102030405060708090A

程序调试过程:

第一步:

输入源程序,如图1所示。

图1输入源程序

第二步:

保存源文件(注:

保存到自己的目录中)。

第三步:

将汇编源程序汇编成目标文件:

执行菜单中“运行—编译成目标文件”命令,若无语法错误,则在下方窗口中显示“编译成功”,如图2所示;若有错误,可根据提示找出错误所在行,改正后,重新执行此命令。

图2将汇编源程序编译成目标文件图3将目标文件连接成EXE文件

第四步:

将第三步生成的目标文件连接成可执行文件:

执行菜单中“运行—生成可执行文件”命令,若无连接错误,则在下方显示“生成EXE文件成功”,如图3所示;若有错误,可根据提示找出错误所在行,改正后,则从第三步开始继续调试。

第五步:

对生成的EXE文件进行调试,查看结果,步骤如下:

(1)执行菜单中的“运行—DEBUG调试”命令,打开DEBUG窗口,如图4所示。

图4DEBUG调试窗口

(2)输入命令“U”,将EXE文件(二进制机器码)反汇编成汇编程序,如图5所示。

其中,最左边一列是代码段中指令的地址,为逻辑地址的形式,其段基址为汇编程序分配,段内偏移地址默认从零开始;第二列为二进制机器码(以十六进制形式显示),与第三列中的汇编语句相对应。

查看第三列,找到自己所有的程序,一般到结束语句MOVAH,4CHINT21H结束;若没有反汇编完所有的程序,则再执行一个“U”命令,直到所有程序均被反汇编出来。

 

图5输入命令U对EXE文件进行反汇编,得到汇编程序

 

(3)应用“G”命令运行程序,G命令格式:

G=起始地址断点地址;起始地址为开始执行指令的地址(若为段内,可只写偏移地址),断点地址为停止执行语句的地址。

例如,执行例题代码段内所有程序时,命令可为G=00000017,0000为第一条指令的偏移地址,0017为指令MOVAH,4CH的地址,到此处结束本程序的执行。

如图6所示。

 

图6运行G命令执行程序

运行G命令后,程序即在断点处停止执行,此时显示出CPU内所有寄存器的当前值。

若要查看运行后内存单元的值,可应用下面的命令D。

(4)查看结果

 

(A)查看内存单元存放的结果:

使用命令D,格式:

D段地址:

偏移地址。

例如,查看本程序的运行结果,如图7所示。

图7 D命令查看内存单元的值

其中,段地址和偏移地址均要以实际运行程序的状态来输入。

仅记录你的运行程序涉及的内存单元,及涉及到的CPU寄存器内容,不能记录屏幕显示的所有内容

(B)其它命令,请查询软件屏幕左边提示信息

(5)最后,输入命令Q退出DEBUG程序。

如图8所示。

图8 命令Q退出DEBUG程序

三实验报告格式要求

题目:

将数据段DATA1中的10个字数据(16位数)传送到数据段DATA2中

1.流程图:

2.源程序(要求有完整的数据段、代码段):

3.运算前内存分布:

4.运算后内存分布:

5.连续运行G=

6.查看结果使用命令:

7.记录结果:

8.存在问题及体会

 

二计算10个字数据的和(数据自己定义)。

三统计10个数(16位数)里的正、负数及零的个数(数据自己定义)。

提示:

设置寄存器:

计数器

正数个数

负数个数

零的个数

10个数的首地址

取数据,进行比较,记录到对应的寄存器中

四在数据区DAT中存放有15个字数据,请利用冒泡法从小到大进行排列,并将结果存入变量RESULT开始的区域(数据自己定义)。

 

五通过键盘任意输入一个字符串,保存在数据段中STR开始的区域,并统计其中的数字字符、英文字符的个数分别存入变量NUM、ENG中。

提示:

数字ASCII码值是30H到39H

英文字符ASCII码值大写从41H开始,小写从61H开始

注意事项:

1.上机前应将每题的前2个要求完成,未完成者不得上机,并按缺一次实验成绩记录!

2.下机时应将每题的后6个要求补充完整并上交。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2