东南大学信息学院微机实验报告二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机实验报告
实验二基本算术和逻辑运算
姓名:
学号:
实验内容:
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
NEXT: MOV WORD PTR[SI], 00
ADD SI, 2
CMP SI, 0022H
JNE NEXT
(2)假设要清除偏移地址从0020H到0010H字存储单元的内容(即由高地址到低地址清零),试编写程序段。
MOV SI, 0020H
NEXT: MOV WORD PTR[SI], 00
SUB SI, 2
CMP SI, 000EH
JNE NEXT
小节:ADD与AND都可以改变标志位,而AND只能根据状态改变s、z、p三个标志位,而ADD能根据状态改变所有标志位。