《【精编版】汇编实验操作答案》由会员分享,可在线阅读,更多相关《【精编版】汇编实验操作答案(4页珍藏版)》请在金锄头文库上搜索。
1、1 第一讲作业: 2 1 有两个 16位字 1EE5H 和 2A3CH 分别存放在IBM PC 机的存储器的000B0H 和 000B3H 单元中,请用图表示出它们在存储器里的存放情况。 000B0H: E5H 000B1H: 1EH 000B2H: 000B3H: 3CH 000B4H: 2AH 22 如果在一个程序开始执行以前(CS)=0A7F0H , (IP)=2B40H ,试问该程序的第一个字 的物理地址是多少? A7F00H+2B40H=AAA40H 23 在 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,BL ; (AL)=00H (3)M
3、OV AX,1300H ; (AX)=9854H (4)MOV AL,BX ; (AL)=24H (5)MOV AL,1100BX ; (AL)=54H (6)MOV AX,BXSI ; (AX)=0F0ACH (7)MOV AL, 1100BXSI ; (AL)=6DH 2、分别指出下列指令中的源操作数和目的操作数的寻址方式: (1)MOV SI,300 源:立即数寻址;目的:寄存器寻址 (2)MOV CX,DATADI 源:寄存器相对寻址;目的:寄存器寻址 (3)ADD AX,BXSI 源:基址变址寻址;目的:寄存器寻址 (4)ADD AX,CX 源:寄存器寻址;目的:寄存器寻址 (5)M
4、OV BP,AX 源:寄存器寻址;目的:寄存器间接寻址 2作业: 1、判断下列指令是否正确: (1)MOV AL,BX ;错误,长度不一致 (2)MOV AL ,CL ;正确 (3)MOV 5,AL ;错误,立即数不能做为目的操作数 (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,
5、试问: (1)执行指令 PUSH AX 后 SP=? (2)再执行 PUSH BX 及 POP AX 后 SP=?AX=?BX=? (SP )=0FFEH (SP )=0FFEH , (AX )=3000H , (BX )=3000H 3、用两种方法写出从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 OUT DX , AX
6、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 ;错误,立即数不能做为目的操作数 (4)MOV BX ,SI ;错误,两个操作数都为内存单元 (5)MOV BL,0F5H ;正确 (6)MOV DX,2000H ;正
7、确 (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 5、用两种方法写出从80H端口读入信息(一个字节)的指令。再用两种方法写 出向 40H端口输出 100H的指令。 读入: (1) I
8、N AL , 80H (2) MOV DX , 80H IN AL , DX 输出: (1)MOV AX , 100H (2) MOV AX , 100H OUT 40H , AX MOV DX , 40H 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)42C8H 6
9、08DH (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。 (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