东南大学信息学院微机实验报告二

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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能根据状态改变所有标志位。

相关文档
最新文档