【微机实验】2018东南大学微型计算机原理及应用实验二
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OR AX, OFEFDH;AX=FBFDH
AND AX, OAFCFH;AX=ABCDH
SHL AX, 1;AX=579AH
RCL AX,1;AX=AF35H
步骤
(1)进入 Turbo Debugger,在CPU窗口下输入程序段
2)将IP指针指向程序段开始处
(3)按下F7键(单步)运行程序。
(4)分析各条指令执行后的结果与各标志位在指令执行后对它的影响
1.见报告中加粗文字部分
2.普通加法指令ADD,指令格式:ADDReg/mem,Reg/mem/imm受影响标志位:AF/CF/OF/PF/SF/ZF
逻辑与操作指令AND,指令的格式: ANDReg/Mem, Reg/Mem/imm受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
SUB SI, 2
CMP SI, 000EH
JNE NEXT
三,实验设备
IBM-TC/XT微机一台
四、实验预习要求
1.复习8086指令系统的算术和逻辑运算指令
2,按照题目要求在实验前编写好程序
五、实验报告要求
1.整理出运行正确的各题源程序段和结果,
2.,简要说明ADD指今和AND指令对标志位的影响。
MOV AL, BXI
ADD AL,[BX+1]
ADD Al, [BX+2]
MOV[BX+3], AL
结果[DS:0013]=44H
求积程序段
MOV[0010],10H
MOV[0011],04H
MOV[0012],30H
SUB AX, AX
MOVA1,[0010]
MOV BL, [0011
MUL BL
MOV BL, [0012]
MUL BL
MOV [0013], AX
结果[DS:0013=0C00H
3.写出完成下述功能的程序段
(1)传送15H到AL寄存器。
(2)将L的内容乘以2
(3)传送15H到L寄存器
4)AL的内容乘以BL的内容。
最后结果(AX)Байду номын сангаас?
MOV AL, 15H
SHL AL, 1
MOV BL, 15H
MUL BL
结果(AX)=0372H
4.写出完成下述功能的程序段
(1)从地址DS:0000H单元中,传送一个数据58H到AL寄存器。
(2)把AL寄存器的内容右移两位
(3)再把L寄存器的内容与字节单元DS:0001H中的数据12H相乘。
(4)将乘积存入字单元DS:0002H中
M0V[0000],58H
M0V[0010],CX;DS:[0010]=OFOFH
程序段3:
MOV BL, 25H;BX=0025H
MO[0010],04H;DS:[0010]=04H
MOV AL, [0010];AX=0004H
MUL BL;AX=0094H
程序段4:
MOV BL,04H;BX=0004H
MOV WORD PTR L0010], 0080H;DS:[0010]=0080H
实验二
学院:信息科学与工程学院姓名:周信元学号:04016523实验日期:2018.4.4
一、实验目的
1.熟悉算术和逻辑运算指令的功能。
2.进一步了解标志寄存器各标志位的意义和指令执行对它的影响。
二、实验任务
1.采用单步执行方式执行下列各程序段,检查各标志位的情况。
程序段1
MOV AX, 10101H;AX=1010H
MOV SI, 0010H
NEXT: MOV WORD PTR[SI]. 00
ADD SI,0022H
CMP SI,
INE NEXT
(2)假设要清除偏移地址从0020H到001字存储单元中的内容(即由高地址到
低地址清零),试编写程序段。
MOV SI, 0020H
NEXTMOV WORD PTR[S1], 00
MOV[0001],12H
MOV AL, [0000]
SHR AL, 02
MOV BL, [0001]
MUL BL
MOV [0002], AX
结果[0002]=018CH
5.假设下面的程序段用来清除数据段中相应字存储单元的内容(即零送到这些存储
单元中去),其偏移地址从0010H到0020H
(1)将第4条比较指令语句填写完整(划线处)
MOV AX, [0010];AX=0080H
DIV BL;AX=0020H
程序段5:
MOV AX, 00;AX=0000H
DEC AX;AX=FFFFH
ADC AX, 3FFFH;AX=3FFEH
ADD AX, AX;AX=7FFCH
NOT AX;AX=8003H
SUB AX, 3;AX=8000H
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
MOV[0020],1000H;DS:[0020]=1000H
ADD 0020, AX;DS:[0020]=443FH
2.将寄存器BⅨ作地址指针,自BX所指的内存单元(0010HD)开始连续存放着三个无符号数(10H、04H、30H),。试编写程序分别求它们的和与积,并将结果存放在这三个数之后的单元中。
求和程序段
MOV[0010],10H
MOV[0011],04H
MOV[0012],30H
SUB AX, AX
MOV BX, 0010H
程序段2:
MOV AX, OA0AOIH;AX=A0A0H
ADO AX, OFFFFH;AX=A09FH
MOV CX, OFFOOH;CX=FF00H
ADD AX, CX;AX=9F9FH
SUB AX, AX;AX=0000H
INC AX;AX=0001H
OR CX, OOFFH;CX=FFFFH
AND CX, OFOFH;CX=0F0FH
AND AX, OAFCFH;AX=ABCDH
SHL AX, 1;AX=579AH
RCL AX,1;AX=AF35H
步骤
(1)进入 Turbo Debugger,在CPU窗口下输入程序段
2)将IP指针指向程序段开始处
(3)按下F7键(单步)运行程序。
(4)分析各条指令执行后的结果与各标志位在指令执行后对它的影响
1.见报告中加粗文字部分
2.普通加法指令ADD,指令格式:ADDReg/mem,Reg/mem/imm受影响标志位:AF/CF/OF/PF/SF/ZF
逻辑与操作指令AND,指令的格式: ANDReg/Mem, Reg/Mem/imm受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
SUB SI, 2
CMP SI, 000EH
JNE NEXT
三,实验设备
IBM-TC/XT微机一台
四、实验预习要求
1.复习8086指令系统的算术和逻辑运算指令
2,按照题目要求在实验前编写好程序
五、实验报告要求
1.整理出运行正确的各题源程序段和结果,
2.,简要说明ADD指今和AND指令对标志位的影响。
MOV AL, BXI
ADD AL,[BX+1]
ADD Al, [BX+2]
MOV[BX+3], AL
结果[DS:0013]=44H
求积程序段
MOV[0010],10H
MOV[0011],04H
MOV[0012],30H
SUB AX, AX
MOVA1,[0010]
MOV BL, [0011
MUL BL
MOV BL, [0012]
MUL BL
MOV [0013], AX
结果[DS:0013=0C00H
3.写出完成下述功能的程序段
(1)传送15H到AL寄存器。
(2)将L的内容乘以2
(3)传送15H到L寄存器
4)AL的内容乘以BL的内容。
最后结果(AX)Байду номын сангаас?
MOV AL, 15H
SHL AL, 1
MOV BL, 15H
MUL BL
结果(AX)=0372H
4.写出完成下述功能的程序段
(1)从地址DS:0000H单元中,传送一个数据58H到AL寄存器。
(2)把AL寄存器的内容右移两位
(3)再把L寄存器的内容与字节单元DS:0001H中的数据12H相乘。
(4)将乘积存入字单元DS:0002H中
M0V[0000],58H
M0V[0010],CX;DS:[0010]=OFOFH
程序段3:
MOV BL, 25H;BX=0025H
MO[0010],04H;DS:[0010]=04H
MOV AL, [0010];AX=0004H
MUL BL;AX=0094H
程序段4:
MOV BL,04H;BX=0004H
MOV WORD PTR L0010], 0080H;DS:[0010]=0080H
实验二
学院:信息科学与工程学院姓名:周信元学号:04016523实验日期:2018.4.4
一、实验目的
1.熟悉算术和逻辑运算指令的功能。
2.进一步了解标志寄存器各标志位的意义和指令执行对它的影响。
二、实验任务
1.采用单步执行方式执行下列各程序段,检查各标志位的情况。
程序段1
MOV AX, 10101H;AX=1010H
MOV SI, 0010H
NEXT: MOV WORD PTR[SI]. 00
ADD SI,0022H
CMP SI,
INE NEXT
(2)假设要清除偏移地址从0020H到001字存储单元中的内容(即由高地址到
低地址清零),试编写程序段。
MOV SI, 0020H
NEXTMOV WORD PTR[S1], 00
MOV[0001],12H
MOV AL, [0000]
SHR AL, 02
MOV BL, [0001]
MUL BL
MOV [0002], AX
结果[0002]=018CH
5.假设下面的程序段用来清除数据段中相应字存储单元的内容(即零送到这些存储
单元中去),其偏移地址从0010H到0020H
(1)将第4条比较指令语句填写完整(划线处)
MOV AX, [0010];AX=0080H
DIV BL;AX=0020H
程序段5:
MOV AX, 00;AX=0000H
DEC AX;AX=FFFFH
ADC AX, 3FFFH;AX=3FFEH
ADD AX, AX;AX=7FFCH
NOT AX;AX=8003H
SUB AX, 3;AX=8000H
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
MOV[0020],1000H;DS:[0020]=1000H
ADD 0020, AX;DS:[0020]=443FH
2.将寄存器BⅨ作地址指针,自BX所指的内存单元(0010HD)开始连续存放着三个无符号数(10H、04H、30H),。试编写程序分别求它们的和与积,并将结果存放在这三个数之后的单元中。
求和程序段
MOV[0010],10H
MOV[0011],04H
MOV[0012],30H
SUB AX, AX
MOV BX, 0010H
程序段2:
MOV AX, OA0AOIH;AX=A0A0H
ADO AX, OFFFFH;AX=A09FH
MOV CX, OFFOOH;CX=FF00H
ADD AX, CX;AX=9F9FH
SUB AX, AX;AX=0000H
INC AX;AX=0001H
OR CX, OOFFH;CX=FFFFH
AND CX, OFOFH;CX=0F0FH