计算机组成原理小结和习题2 联系客服

发布时间 : 星期三 文章计算机组成原理小结和习题2更新完毕开始阅读deb01017a76e58fafab00354

18.设(DS)=2000H,(BX)=1256H,(SI)=528FH,偏移量=20A1H,(232F7H)=3280H,(264E5H)=2450H,试求执行下述指令后的结果。

(1)JMP BX ;(IP)=? (2)JMP TABLE[BX] ;(IP)=? (3)JMP [BX][SI] ;(IP)=?

19.8086/8088用什么途径来更新CS和m的值?

20.设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH,当执行CALL2000:0094H后,试指出(IP)、(cs)、(sP)、((sP))、((sP)+1)、((sP)+2)和((sP)+3)的内容。

第5章 本章小结

本章小结本章主要介绍了宏汇编程序提供的伪指令、宏指令以及8086汇编语言程序的设计方法,并阐述了汇编语言上机的步骤和方法,同时还介绍了如何发挥80x86新增加或增强的指令在程序设计中的优势。

汇编程序在对源程序进行汇编的过程中,需要有一些命令告诉汇编程序如何对汇编语言源程序进行汇编,编程者也要借助一些命令说明并初始化数据区、堆栈区和代码区,以便更好地组织代码。这正是伪指令的作用。在本章中所介绍的伪指令都是最为常用的,读者应加以掌握。

掌握汇编语言程序的设计,主要是靠设计者对所要解决问题的深入理解,对

计算机指令的熟练掌握,以及在实践中获得的经验、技巧与逻辑思维能力。

在本章中,分别介绍了顺序程序、分支程序、循环程序和子程序等的设计方法,并列举了一些例子,从中给出解决问题的思路。读者应对每个例子的思路详加推敲,才能获得一些方法或技巧。

习题

1.画图说明下列语句所分配的存储空间及初始化的数据值。

(1)BYTE_VAR DB ‘BYTE’,12,一12H,3DUP(0,7,2DUP(1,2),7) (2)WORD_VAR DW 5DUP(0,1,2),7,一5,’BY’,’TE’,256H

2.假设程序中的数据定义如下:

PARTNO DW ? PNAME DB 16DUP(?) COUNT DD ?

PLENTH EQU $一PARTNO

PLENTH的值为多少?它表示什么意义?

3.有符号定义语句如下: BUFF DB 1,2,3,‘123’ EBUFF DB 0

L EQU EBUFF-BUFF

则L的值是多少?

4.假设程序中的数据定义如下:

LNAME DB 30 DUP(?) ADDRESS DB 30DUP(?) CITY DB 15DUP(?) CODE_LIST DB 1,7,8,3,2

(1)用一条MOV指令将LNAME的偏移地址放入BX。 (2)用一条指令将CODELIST的头两个字节的内容放入sI。

(3)写一条伪指令定义符使CODE_LENGHT的值等于CODE_LIST域的实际长

度。

5.对于下面的数据定义,试说明三条MOV指令的执行结果。

TABLEA DW 10DUP(?) TABLEB DB 10DUP(?) TABLEC DB ‘1234’

MOV AX,LENGTH TABLEA ;(AX)= MOV BL,LENGTH TABLEB ;(BL)= MOV CL,LENGTH TABLEC ;(CL)=

6.对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

FLDB DB ?

TABLEA DW 20 DUP(?) TABLEBDB ‘ABCD’

(1)MOV AX,TYPE FLDB ;(AX)= (2) MOV AX,TYPE TABLEA ;(AX)= (3) MOV CX,LENGTH TABLEA ;(CX)= (4) MOV DX,SIZE TABLEA ;(DX)= (5) MOV CX,LENGTH TABLEB ;(CX)=

7.试说明下述指令中哪些需要加上盯R伪指令定义符:

BVAL DB 10H,20H· WVAL DW 1000H (1)MOV AL,BVAL (2)MOV DL,[BX] (3)SUB [BX],2 (4)MOV CL,WVAL

8.编写一宏定义BXCHG,将一字节的高4位与低4位交换。 9.已知宏定义如下:

XCHG0 MACRO A,B

MOV AX,A

XCHG AL,B ENDM

OPP MACRO P1,P2,P3,P4

XCHG0 P1,P4 XCHG0 P1,P3 ENDM

展开宏调用:OPPBX,BL,CH,CL。

10.将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。

11.试编写一程序,要求比较两个字符串STRINGl和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NOMATCH”。

12.试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCU码为07H)。

13.编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。

14.试编制一个汇编语言程序,求出首地址为DATA的100DH字数组中的最小偶数,并把它存放在AX中。

15.试编写一汇编语言程序,要求从键盘接收一个4位的十六进制数,并在终端上显示与它等值的二进制数。

16.数据段中已定义了一个有n个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(叶1)单元中。

17.在首地址为DATA的字数组中,存放了100H个16位补码数,试编写一程序,求出它们的平均值,放在Ax寄存器中;并求出数组中有多少个数小于此平均值,将结果放在BX寄存器中。

18.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一程序,把既在A中又在B中出现的整数存放于数组c中。

19.从键盘输入一系列字符(以回车符结束),并按字母、数字及其他字符分