1、一 微机原理与接口技术汇编题目(1)数据块传送1、将数据段中 2000H 单元开始存放的 10 个数(8 位数)传送到 3000H 开始的 10 个字节中。2、将数据段 DATA1 中的 10 个字数据(16 位数)传送到数据段 DATA2 中。提示:1、指定数据的起始地址:(如果不指定起始地址,则起始地址为 0000H)DATA SEGMENT ORG 2000HDB 1,,2,3,4,5,6,7,8,9,10 ; DB 定义字节数据 ORG 3000HDB 10 DUP(0); 预留 10 个单元存放结果,初值预定义为 0DATA ENDS定义的内存单元为:地址 内容 (H)2000H 1
2、2001H 22002H 32003H 42004H 52005H 62006H 72007H 82008H 92009H 0A2、定义字数据命令 为:DWDAT SEGMENT DATA1 DW 1,,2,3,4,5,6,7,8,9,10 ; DW 定义字数据 DSDATA2 DW 10 DUP(0) ESDAT ENDSMOV AX , DATMOV DS,AXMOV ES,AXMOV ;一个字为两个字节,在内存中低位在前,高位在后。地址(H) 内容(H)0000 010001 000002 020003 000004 030005 000006 040007 000008 050009
3、00000A 06000B 00000C 07000D 00000E 08000F 000010 090011 000012 0A0013 00(2) 查表1、已知 015 的平方值表,查表求 X(X 是 0 到 15 间任一数)的平方值,送到 Y 单元,用两种方法。2、已知 0255 的平方值表,查表求 X 的平方值,送到 Y 单元。提示:0 到 15 的平方表,每个平方值为一个字节;0 到 255 的平方表,每个平方值为 2 个字节;调试程序,平方表中的数据定义几个就行,目的是程序正确即可。一个字为两个字节,在内存中低位在前,高位在后。(3)计算1、计算多字节数据 112233445566
4、7788H 与 99AABBCCDDEEFF00H 的和。2、计算 8 字节的 BCD 码十进制数 1122334455667788H 与 9988776655443322H 的和3、计算 10 个字数据的和(数据自己定义) 。提示;1、多字节数据在内存中存放,低位在前,高位在后DAT1 DB 88H,77H,66H,55H,44H,33H,22H,11HDAT2 DB 00H,0FFH,0EEH,0DDHDB 0CCH,0BBH,0AAH,99H DAT3 DB 9 DUP(0) 地址 数据DAT1 0000 88SI 0001 770002 660003 550004 440005 330
5、006 220007 11DAT2 0008 00DI 0009 FF000A EE000B DD000C CC000D BB000E AA000F 99DAT3 0010BX 001100120013001400150016001700182、 BCD 十进制加法二进制加法指令: ADD BCD 十进制加法: ADDDAA;十进制调整指令,仅对 AL 作为加法的累加和寄存器进行调整(4)计算表达式的值1 计算表达式 的值,已知 X=10,Y=5。)2/(7*)(YXZ提示:X DB 10Y DB 5 Z DB ?AL=X-YBL=7AX=AL*BLBH=Y+2AL=AX/BH 的商AH=AX
6、/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 个字数据,编程比较是否
7、一致(数据自己定义) 。(8)逻辑运算1、 在数据段 3000H 单元开始存放了数字 09 的 ASCII 码,求对应的十进制数字并存放到 3500H开始的单元;再将 3500H 开始的十进制数字转换为对应的 ASCII 码,存放到 3800H 开始单元。提示:数字转换方法:例如:数字5的 ASCII 为 35H(0011 0105B),想办法变为 05H(00000105B),存入对应的单元,然后再将 05H(00000105B),变为 35H(0011 0105B) 存入对应的单元。DATA SEGMENT ORG 3000HDB 0123456789 ; DB 定义字节数据 ORG 3500HDB 10 DUP(?); 预留 10 个单元存放结果ORG 3800HDB 10 DUP(?); 预留 10 个单元存放结果DATA ENDS(9)输入输出1、在显示器上输出字符串HELLO! 。2、从键盘输入一组字符串,存入到 BUFFER 数据区(自己定义)中。3、将十进制数 25 从显示器上输出。4、将数据段中的 10 个个位数数据从显示器上输出。以上各题做为练习使用!提示:1、 显示字符串2、 键盘输入一组字符串方法 1 用 10 号调用,方法 2 用 1 号调用,设置循环次数