东南大学信息学院微机实验报告二.docx
文本预览下载声明
微机实验报告
实验二 基本算术和逻辑运算
姓名:
学号:
实验内容:
1.采用单步执行方式执行下列各程序段,检查各标志位的情况。
程序段1:
MOV AX, 1010H; AX=1010H i=1
MOV SI, 2000H; SI=2000H
ADD AL, 30H; AX=1040H
ADD AX, SI; AX=3040H
MOV BX, 03FFH; BX=03FFH
ADD AX, BX; AX=343FH p=1
MOV [0200], 1000J; [0020]=1000
ADD [0020], AX; [0020]=443FH
程序段2:
MOV AX, 0A0AH; AX=0A0AH
ADD AX, 0FFFFH; AX=0A09H c=1 a=1
MOV CX, 0FF00H; CX=0FF00H
ADD AX, CX; AX=0909 a=0
SUB AX, CX; AX=0000 c=0 z=1
INC AX; AX=0001H z=0 i=1 p=0
OR CX, 00FFH; CX=FFFFH s=1 p=1
AND CX, 0F0FH; CX=0F0FH s=0
MOV [0010], CX; [0010]=0F0FH
程序段3:
MOV BL, 25H; BL=25H
MOV [0010], 04H; [0010]=04H
MOV AL, [0010]; AL=04H
MUL BL; AL=94H
程序段4:
MOV BL, 04H; BX=0004H
MOV WORD PTR [0010], 0080H; [0010]=0080H
MOV AX, [0010]; AX=0080H
DIV BL; AX=0020H
程序段5:
MOV AX, 00H; AX=0000H
DEC AX; AX=FFFFH s=1 p=1 a=1
ADC AX, 3FFFH; AX=3FFEH c=1 s=0 p=0
ADD AX, AX; AX=7FFCH c=0 p=1
NOT AX; AX=8003H
SUB AX, 3; AX=8000H s=1 a=0
OR AX, 0FBFDH; AX=FBFDH p=0
AND AX, 0AFCFH; AX=ABCDH
SHL AX, 1; AX=579AH c=1 s=0 o=1 p=1
RCL AX, 1; AX=AF35H c=0
步骤:
(1)进入Turbo Debugger, 在CPU窗口下输入程序段。
(2)将IP指针指向程序段开始处
(3)按下F7键运行程序
(4)分析各条指令执行后的结果与各标志位在指令执行后对它的影响
2.将寄存器BX作地址指针,自BX所指的内存单元(0010H)开始连续存放着三个无符号数(10H、04H、30H)。试编写程序分别求他们的和与积,并将结果存放在这三个数之后的单元中。
程序段:
MOV BX, 0010h
MOV [BX], 10h
MOV [BX+1], 04H
MOV [BX+2], 30H
MOV AX, 0000h
ADD AL, [BX]
ADD AL, [BX+1]
ADD AL, [BX+2]
MOV [BX+3], AX
MOV AX, 0000h
MOV AL, [BX]
MOV CL, [BX+1]
MUL CL
MOV CL, [BX+2]
MUL CL
MOV [BX+5], AX
3.写出完成下述功能的程序段
(1)传送15H到AL寄存器中
(2)将AL的内容乘以2
(3)传送15H到BL寄存器
(4)AL的内容乘以BL的内容
最后结果(AX)=?
程序段:
MOV AL, 15H
MOV BL, 2
MUL BX
MOV BL, 15H
MUL BL
最后AX=0372H
4.写出完成下述功能的程序段
(1)从地址DS:0000H单元,传送一个数据58H到AL寄存器中
(2)把AL寄存器的内容右移两位
(3)再把AL寄存器的内容与字节单元DS:0001H中的数据12H相乘
(4)将乘积存入字单元DS:0002H中
程序段:
MOV [0000], 58H
MOV [0001], 12H
MOV AL, [0000]
SHR AL, 02h
MOV BL, [0001]
MUL BL
MOV [0002], AX
5.假设下面的程序段用来清除数据段中相应字存储单元的内容(即零送到这些存储单元中去),其偏移地址从0010H到0020H
(1)将第4条比较指令语句填写完整(划线处)
MOV SI, 0010H
显示全部