您好,欢迎来电子发烧友网! ,新用户?[免费注册]

当前位置:电子发烧友网 > 图书频道 > 电子 > 《微计算机原理》 > 第3章 8086指令系统

第5节 练习题

 

  1、8086指令系统可以处理哪几类数据类型?

  2、8086系统中,采用什么途径来改变CS和IP的值?有哪些指令可用于这个目的?

  3、数据传送指令可以把寄存器作为目的操作数,但同时又规定代码段CS不能作为目的操作数,为什么?

  4、试述指令MOV AX,2000H和MOV AX,DS:[2000H]的区别。

  5、INC和DEC指令实质是加减法指令,为什么设计成不影响进位标志?

  6、已知SS内容为2000H,SP内容为1000H,AX内容为123H,BX内容为8BCDH。先执行两条PUSH AX和PUSH BX,然后再执行两条POP AX和POP BX。要求:

  (1) 画出执行两条PUSH指令和POP指令过程的示意图。

  (2) 说明堆和SP的变化过程。

  (3) AX和BX最终内容是什么?

  7、编写程序段:

  (1) 将06A6H单元的内容送AX。

  (2) 将06A8H单元的内容送BX。

  (3) 将立即数32H送CL,立即数38H送DL。

  (4) 将立即数0400H送SI,立即数08FFH送DI。

  (5) 将立即数1234H送存储单元0940H。

  8、在8086指令系统中,设置LAHF和SAHF指令的目的是什么?

  9、XLAT是一条什么指令?AL和BX在指令中起什么作用?

  10、以知一个关于0~9数字的ASCII码表首址是当前数据段的1A80H,现要找出数字5的ASCII码,试用XLAT指令编程。

  11、编程序段将补码9035H和7304H相加,结果送地址0621H单元。

  12、编程序段将CX中的数(补码)与补码86H相加,结果送AX。

  13、编程序段将十进制数37和48相加。

  14、写出10H、19H、62H、57H的压缩BCD数的表示形式。

  15、将十进制数9和6相乘,结果送地址为0320H单元。

  16、8086的除法指令对余数是怎样规定的?写出+47除以-9,-47除以+9的商和余数。

  17、为什么非压缩BCD数的被除数、除数、被乘数、乘数的高四位必须是零?而对参加加法和减法运算的BCDE数,则不作此要求?

  18、将存放在0A00H单元和0A02H单元中的两个16位无符号数相乘,结果存地址为0A04H开始的单元中。

  19、将DX中的16位无符号数除以61H,将商存0930H单元,余数送0931H单元。

  20、用移位法,将SI内容乘以10(其积小于65535),结果存入1000H单元。

  21、编程序将AX中数,最高位保持不变,其余全部右移四位。

  22、将0400H单位中数,前四位置零,后四位保持不变。

  23、将BX中数,对高位字节求反,低位字节保持不变。

  24、检查BX中第13位,为0时,把AL置0;为1时,把AL置1。

  25、什么是段内转移?什么是段间转移?什么是间接转移?

  26、为什么不能用JMP指令调用子程序?

  27、分析下列程序段:

  MOV AL,50H

  G:DEC AL

  JNZ G

  HLT

  问:DEC AL指令,共执行多少次?

  28、利用字符串操作指令,将1000H~10FFH单元的内容全部清零。

  29、从1000H单元开始,存放200个字符串,要查出字符#,把存放第一个#的单元地址送BX中。

  30、100个数据的字符串,从地址为adr1单元传送到地址为adr2单元(设地址adre1和adr2间距小于100,即两数据区有重迭),试用字符串操作指令编程序。