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,即两数据区有重迭),试用字符串操作指令编程序。