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

上传人:新** 文档编号:490391971 上传时间:2024-03-05 格式:DOC 页数:20 大小:564KB
返回 下载 相关 举报
华电微机原理与技术汇编语言题目及答案_第1页
第1页 / 共20页
华电微机原理与技术汇编语言题目及答案_第2页
第2页 / 共20页
华电微机原理与技术汇编语言题目及答案_第3页
第3页 / 共20页
华电微机原理与技术汇编语言题目及答案_第4页
第4页 / 共20页
华电微机原理与技术汇编语言题目及答案_第5页
第5页 / 共20页
点击查看更多>>
资源描述

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

1、一 微机原理与接口技术汇编题目 (1)数据块传送1、将数据段中 2000H 单元开始存放的 10 个数(8 位数)传送到 3000H 开始的 10 个字节中。 2、将数据段 DATA1 中的 10 个字数据(16 位数)传送到数据段 DATA2 中。提示:1、指定数据的起始地址:(如果不指定起始地址,则起始地址为 0000H)DATA SEGMENTORG 2000HDB 1,,2,3,4,5,6,7,8,9,10 ; DB 定义字节数据ORG 3000HDB 10 DUP(0); 预留 10 个单元存放结果,初值预定义为 0DATA ENDS定义的内存单元为:地址2000H2001H2002

2、H2003H2004H2005H2006H2007H2008H2009H内容(H)1234567890A2、定义字数据命令 为:DWDATA1 SEGMENTDW 1,,2,3,4,5,6,7,8,9,10 ; DW 定义字数据 DATA1 ENDS一个字为两个字节,在内存中低位在前,高位在后。地址(H)0000000100020003000400050006000700080009000A000B000C000D000E000F0010001100120013内容(H) 0100020003000400050006000700080009000A00(2) 查表1、已知 015 的平方值表,

3、查表求 X(X 是 0 到 15 间任一数)的平方值,送到 Y 单元,用 两种方法。2、已知 0255 的平方值表,查表求 X 的平方值,送到 Y 单元。提示:0 到 15 的平方表,每个平方值为一个字节;0 到 255 的平方表,每个平方值为 2 个字节;调试程序,平方表中的数据定义几个就行,目 的是程序正确即可。一个字为两个字节,在内存中低位在前,高位在后。(3)计算1、计算多字节数据与 99AABBCCDDEEFF00H 的和。2、计算 8 字节的 BCD 码十进制数与 9988776655443322H 的和 3、计算 10 个字数据的和(数据自己定义)。提示;1、多字节数据在内存中存

4、放,低位在前,高位在后DAT1 DB 88H,77H,66H,55H,44H,33H,22H,11HDAT2 DB 00H,0FFH,0EEH,0DDH,0CCH,0BBH,0AAH,99HDAT3 DB 9 DUP(0)DAT1DAT2DAT3地址0000000100020003000400050006000700080009000A000B000C000D000E000F001000110012001300140015001600170018数据887766554433221100FFEEDDCCBBAA992、 BCD 十进制加法二进制加法指令: ADD BCD 十进制加法: ADDDA

5、A;十进制调整指令,仅对 AL 作为加法的累加和寄存器进行调整(4)计算表达式的值1 计算表达式Z =( X -Y ) * 7) /(Y +2)的值,已知 X=10,Y=5。提示:X DB 10Y DB 5Z DB ?AL=X-YBL=7AX=AL*BLBH=Y+2AL=AX/BH 的商AH=AX/BH 的余数(5)找最大、最小数1、找出 2040H 单元和 2041H 单元的大数,并送 2042H 单元(数据自己定义)2、找出 10 个数(8 位数)里的最大数(数据自己定义)3、找出 10 个数(16 位数)里的最小数(数据自己定义)(6)统计正数、负数个数1、找出 10 个数(8 位数)里

6、的正数个数(数据自己定义)2、找出 10 个数(16 位数)里的负数个数(数据自己定义)(7)数据块比较1、分别在 FARD1 和 FARD2 单元开始存放了 10 个字节数据,编程比较是否一致(数据自 己定义)。2、分别在 FARD1 和 FARD2 单元开始存放了 10 个字数据,编程比较是否一致(数据自己 定义)。(8)逻辑运算1、 在数据段 3000H 单元开始存放了数字 09 的 ASCII 码,求对应的十进制数字并存放到 3500H 开始的单元;再将 3500H 开始的十进制数字转换为对应的 ASCII 码,存放到 3800H 开始单元。提示:数字转换方法:例如:数字5的 ASCI

7、I 为 35H(0011 0105B), 想办法变为 05H(00000105B),存入对应的单 元,然后再将 05H(00000105B),变为 35H(0011 0105B) 存入对应的单元。DATA SEGMENTORG 3000HDB 0123456789 ; DB 定义字节数据ORG 3500HDB 10 DUP(?); 预留 10 个单元存放结果ORG 3800HDB 10 DUP(?); 预留 10 个单元存放结果DATA ENDS(9)输入输出1、在显示器上输出字符串HELLO!。2、从键盘输入一组字符串,存入到 BUFFER 数据区(自己定义)中。 3、将十进制数 25 从显

8、示器上输出。4、将数据段中的 10 个个位数数据从显示器上输出。以上各题做为练习使用!提示:1、 显示字符串2、 键盘输入一组字符串方法 1 用 10 号调用,方法 2 用 1 号调用,设置循环次数3、将十进制数 25 从显示器上输出。想办法把 25 的十位和个位拆开,再分别变为 ASCII,先显示 2,后显示 53、将数据段中的 10 个个位数数据从显示器上输出。从数据段中直接定义 10 个个位数据,取出数据后,变为 显示二 实验过程参考步骤变为 ASCII,题目1、将数据段中 2000H 单元开始存放的 10 个数(8 位数)传送到 3000H 开始的 10 个字节中。 源程序:数据定义D

9、ATAS SEGMENTORG 2000HDATA1 DB 1,2,3,4,5,6,7,8,9,10ORG 3000HDATA2 DB 10 DUP (0)DATAS ENDSCODES SEGMENTSTART: MOV AX,DATASMOV DS, AXMOV SI, 2000HMOV DI, 3000HMOV CX, 10NEXT:MOV AL, SIMOV DI, ALINC SIINC DIDEC CXJNZ NEXTMOV AH, 4CHINT 21HCODES ENDSEND START运行前内存分布:程序运行前 2000H: 01 02 03 04 05 06 07 08 0

10、9 0A3000H: 00 00 00 00 00 00 00 00 00 00程序运行后 2000H: 01 02 03 04 05 06 07 08 09 0A3000H: 01 02 03 04 05 06 07 08 09 0A程序调试过程:第一步:输入源程序,如图 1 所示。图 1 输入源程序第二步:保存源文件(注:保存到自己的目录中)。第三步:将汇编源程序汇编成目标文件:执行菜单中“运行编译成目标文件”命令,若无 语法错误,则在下方窗口中显示“编译成功”,如图 2 所示;若有错误,可根据提示找出错 误所在行,改正后,重新执行此命令。图 2 将汇编源程序编译成目标文件 图 3 将目标

11、文件连接成 EXE 文件 第四步:将第三步生成的目标文件连接成可执行文件:执行菜单中“运行生成可执行文件” 命令,若无连接错误,则在下方显示“生成 EXE 文件成功”,如图 3 所示 ;若有错误,可 根据提示找出错误所在行,改正后,则从第三步开始继续调试。第五步:对生成的 EXE 文件进行调试,查看结果,步骤如下:(1) 执行菜单中的“运行DEBUG 调试”命令,打开 DEBUG 窗口,如图 4 所示。图 4 DEBUG 调试窗口(2)输入命令“U”,将 EXE 文件(二进制机器码)反汇编成汇编程序,如图 5 所示。 其中,最左边一列是代码段中指令的地址,为逻辑地址的形式,其段基址为汇编程序分

12、配,段内偏移地址默认从零开始;第二列为二进制机器码(以十六进制形式显示),与 第三列中的汇编语句相对应。查看第三列,找到自己所有的程序,一般到结束语句 MOV AH,4CH INT 21H 结 束;若没有反汇编完所有的程序,则再执行一个“ U”命令,直到所有程序均被反汇编出 来。图 5 输入命令 U 对 EXE 文件进行反汇编,得到汇编程序(3) 应用“G”命令运行程序,G 命令格式:G=起始地址 断点地址;起始地址为开始执行 指令的地址(若为段内,可只写偏移地址),断点地址为停止执行语句的地址。例如,执 行例题代码段内所有程序时,命令可为 G=0000 0017,0000 为第一条指令的偏移

13、地址,0017 为指令 MOV AH, 4CH 的地址,到此处结束本程序的执行。如图 6 所示。图 6 运行 G 命令执行程序运行 G 命令后,程序即在断点处停止执行,此时显示出 CPU 内所有寄存器的当前值。 若要查看运行后内存单元的值,可应用下面的命令 D。(4) 查看结果(A) 查看内存单元存放的结果:使用命令 D,格式:D 段地址:偏移地址。例如,查看本程序的运行结果,如图7 所 示。图 命令查看内存单元的值其中,段地址和偏移地址均要以实际运行程序的状态来输入。仅记录你的运行程序涉及的内存单元,及涉及到的 CPU 寄存器内容,不能记录屏幕 显示的所有内容(B)其它命令,请查询软件屏幕左边 提示信息() 最后,输入命令 Q 退出程序。如图所示。图 命令退出程序三 实验报告格式要求一 题目:将数据段 DATA1 中的 10 个字数据(16 位数)传送到 数据段 DATA2 中1.2.3.4.5.6.7.8.流程图:源程序(要求有完整的数据段、代码段): 运算前内存分布:运算后内存分布:连续运行 G=查看结果使用命令:记录结果:存在问题及体会二 计算 10 个字数据的和(数据自己定义)。三 统计 10 个数(16 位数)里的正、负数及零的个数(数据自己 定义)。提示:设置寄存器 :计数器正数个数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号