微机原理第三章习题
第四章 指令与寻址方式习题解答
1.试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:
(1) AND AX,0FFH
(2) AND BL,[OFFH]
(3) MOV DS,AX
(4) CMP [SI],CX
(5) MOV DS:[0FFH],CL
(6) SUB [BP][SI],AH
(7) ADC AX,0ABH[BX]
(8) OR DX,-35[BX][DI]
(9) PUSH DS
(10) CMC
2.试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。
(1) MOV [BX][BP],AX
(2) TEST [BP],BL
(3) ADD SI,ABH
(4) AND DH,DL
(5) CMP CL,1234H
(6) SHR [BX][DI],3
(7) NOT CX,AX
(8) LEA DS,35[SI]
(9) INC CX,1
(10) PUSH 45[DI]
3.已知 DS =09lDH, SS =1E4AH,(AX)=1234H,(BX) 0024H,(CX =5678H,(BP)=0024H,(SI) 0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。下列各指令或程序段分别执行后的结果如何?
(1) MOV CL,20H[BX][SI]
(2) MOV [BP][DI],CX
(3) LEA BX,20H[BX][SI]
MOV AX,2[BX]
(4) LDS SI,[BX][DI]
MOV [SI],BX
(5) XCHG CX,32H[BX]
XCHG 20H[BX][SI],AX
4.执行下列指令后: STR1 DW ‘AB’ MOV AX,STR1 HLT
寄存器AX的值是多少?
5.JMP FAR PTR ABCD ABCD是符号地址 的转移方式是什么?
6.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,当执行指令”MOV AX,TABLE”和”LEA AX,TABLE”后, AX 中的内容分别为多少?
7.试简述LES REG,SRC所完成的操作?
8.试编写汇编程序段完成以下功能:将1000个字符的字符串从内存的BUFFER1搬
移到内存的BUFFER2中去。
10.试编写汇编程序段完成以下功能:比较DEST和SOURCE中的500个字节,找出
第一个不相同的字节,如果找到,则将SOURCE中的这个数送AL中。
11.试编写汇编程序段完成以下功能:求最大值,若自BLOCK开始的内存缓冲区中,
有100个带符号的数,希望找到其中最大的一个值,并将它放到MAX单元中。
第五章 汇编语言程序设计习题解答
1. 指出下列指令的错误: 1 MOV AHBX
2 MOV [BX],[SI] 3 MOV AX,[SI][DI] 4 MOV MYDAT[BX][SI],ES:AX 5 MOV BYTE PTR[BX],1000 6 MOV BX,OFFSET MYDAT[SI] 7 MOV CS,AX
2.画图说明下列语句所分配的存储空间及初始化的数据值。
BYTE-VAR DB ‘BYTE’,12,-12H,3DUP(0,?,2DUP(1,2),?)
WORD-VAR DW 5DUP 0,1,2 ,?,-5,’BY’,’TE’, 256H
3.请设置一个数据段DATASG,其中定义以下字符变量或数据变量。
FLD1B为字符串变量:‘personal computer’;
FLD2B为十进制数字节变量:32;
FLD3B为十六进制数字节变量:20;
FLD4B为二进制数字节变量
FLD5B为数字的ASCII字符字节变量:32654;
FLD6B为10个零的字节变量;
FLD1W为十六进制数字变量:FFF0;
FLD2W为二进制数字变量
FLD4W为包括5个十进制数的字变量:5,6,7,8,9;
FLD5W为5个零的字变量;
4.假设程序中的数据定义如下:
PARTNO DW ?
PNAME DB 16 DUP(?)
COUNT DD ?
PLENTH EQU $-PARTNIO
问PLENTH的值为多少?它表示什么意义?
解答:PLENTH代表着PARTNO至PLENTH的地址差,也即三段数据的字节数PLENTH 22。
5.假设程序中的数据定义如下:
LNAME DB 30 DUP(?)
ADDRESS DB 30 DUP(?)
CITY DB 15 DUP(?)
CODE-LIST DB 1,7,8,3