1、1. 第一讲作业: 2.1 有两个16位字1EE5H和2A3CH分别存放在IBM PC机的存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。 000B0H: E5H 000B1H: 1EH 000B2H: 000B3H: 3CH 000B4H: 2AH 2.2 如果在一个程序开始执行以前(CS)=0A7F0H, (IP)=2B40H,试问该程序的第一个字的物理地址是多少? A7F00H+2B40H=AAA40H 2.3 在IBMPC机的存储器中存放信息如图所示。试读出30022H和30024H字节单元的内容,以及30021H和300
2、22H字单元的内容。 30022H和30024H字节单元的内容分别为ABH、EFH 30021H和30022H字单元的内容分别为AB34H、CDABH 第3讲作业: 1、现有(DS)=3000H,(BX)=0200H,(SI)=0002H,(30200)=24H,(30202)=0ACH,(30203)=0F0H,(31300)=54H,(31301)=98H,(31302)=6DH,试说明下列各条指令执行完后AX或AL寄存器的内容。 (1)MOV AX,1300H ;(AX)=1300H (2)MOV AL,B
3、L ;(AL)=00H (3)MOV AX,[1300H] ;(AX)=9854H (4)MOV AL,[BX] ;(AL)=24H (5)MOV AL,1100[BX] ;(AL)=54H (6)MOV AX,[BX][SI] ;(AX)=0F0ACH (7)MOV AL, 1100[BX][SI] ;(AL)=6DH 2、分别指出下列指令中的源操作数和目的操作数的寻址方式: (1)MOV SI,300 源:立即数寻址; 目的:寄存器寻址 (2)MO
4、V CX,DATA[DI] 源:寄存器相对寻址;目的:寄存器寻址 (3)ADD AX,[BX][SI] 源:基址变址寻址; 目的:寄存器寻址 (4)ADD AX,CX 源:寄存器寻址; 目的:寄存器寻址 (5)MOV [BP],AX 源:寄存器寻址; 目的:寄存器间接寻址 2作业: 1、判断下列指令是否正确: (1)MOV AL,BX ;错误,长度不一致 (2)MOV AL,CL ;正确 (3)MOV 5,AL ;错误,立即数不能做为目的操作数 (4)MOV [BX],[SI] ;错误,两个操作数都为内存单元
5、 (5)MOV BL,0F5H ;正确 (6)MOV DX,2000H ;正确 (7)MOV ES,DS ;错误,数据不允许在段寄存器之间传送 (8)PUSH CS ;正确 (9)POP CS ;错误,CS不能做为目的操作数 2、设堆栈指针SP的初值为1000H,AX=2000H,BX=3000H,试问: (1)执行指令PUSH AX后SP=? (2)再执行PUSH BX及POP AX后SP=?AX=?BX=? (SP)=0FFEH (SP)=0FFEH,(AX)=3000H,(BX)=3000H 3、 用两种方法写出从80H端口读入信
6、息(一个字节)的指令。再用两种方法写出向40H端口输出100H的指令。 读入:(1) IN AL , 80H (2) MOV DX , 80H IN AL , DX 输出:(1)MOV AX , 100H (2) MOV AX , 100H OUT 40H , AX MOV DX , 40H OUT
7、DX , AX 4、 出将字单元A、B中的内容相互交换的指令序列(用三种方法实现)。 1、 MOV AX , A MOV BX , B MOV A , BX MOV B , AX 2、 PUSH A PUSH B POP A POP B 3、 MOV AX , A XCHG AX , B MOV A , AX 作业: 1、判断下列指令是否正确: (1)MOV AL,BX ;错误,长度不一致 (2)MOV AL,CL ;正确 (3)MOV 5,AL ;错误,立即数不能做为目
8、的操作数 (4)MOV [BX],[SI] ;错误,两个操作数都为内存单元 (5)MOV BL,0F5H ;正确 (6)MOV DX,2000H ;正确 (7)MOV ES,DS ;错误,数据不允许在段寄存器之间传送 (8)PUSH CS ;正确 (9)POP CS ;错误,CS不能做为目的操作数 2、设堆栈指针SP的初值为1000H,AX=2000H,BX=3000H,试问: (1)执行指令PUSH AX后SP=? (2)再执行PUSH BX及POP AX后SP=?AX=?BX=? (SP)=0FFEH (SP)=0FFEH,
9、AX)=3000H,(BX)=3000H 5、 用两种方法写出从80H端口读入信息(一个字节)的指令。再用两种方法写出向40H端口输出100H的指令。 读入:(1) IN AL , 80H (2) MOV DX , 80H IN AL , DX 输出:(1)MOV AX , 100H (2) MOV AX , 100H OUT 40H , AX MOV DX , 40H
10、 OUT DX , AX 6、 出将字单元A、B中的内容相互交换的指令序列(用三种方法实现)。 1、 MOV AX , A MOV BX , B MOV A , BX MOV B , AX 3、 PUSH A PUSH B POP A POP B 3、 MOV AX , A XCHG AX , B MOV A , AX 四1、如果给定AX和BX的内容如下: AX BX (1)42C8
11、H 608DH (2)B568H 54B7H 试分析当执行下列指令序列时,将转向哪里? ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP SHORT L5 (1)转至L2 (2)转至L1 2、假定AX和BX中的内容为带符号数,CX和DX中的内容为无符号数,请用比较指令和条件转移指令实现以下判断: (1) 若DX的内容超过CX的内容,则转去执行EXCEED。 (2) 若BX的内容大于AX的内容,则转去执行EXCEED。
12、 (3) 若CX的内容等于零,则转去执行ZERO。 (4) BX与AX的内容相比较是否产生溢出?若溢出则转OVERFLOW。 (5) 若BX的内容小于等于AX的内容,则转EQ-SMA。 (6) 若DX的内容低于等于CX的内容,则转EQ-SMA。 (1) CMP DX,CX JA EXCEED (2) CMP BX,AX JG EXCEED (3) CMP CX,0 JZ ZERO 或 JCXZ ZERO (4) CMP BX,AX JO OVERFLOW (5) CMP BX,AX JLE EQ-SMA (6) CMP DX,CX JBE EQ-SMA






