实验二 算术运算实验
实验二 算术运算
汇编语言实验报告(二)班级:01540802班姓名:南征学号: 20080705信息与电子学院实验二算术运算一、实验目的熟悉利用汇编语言对多精度十六进制和十进制的编程方法,弄清带符号数及不带符号数的运算区别,理解各状态标志位的含义,以及运算结果对各状态标志的影响,掌握无符号数的乘除法运算并保证运算结果不溢出。
二、实验要点对汇编语言的算术运算要分清是有符号的运算还是无符号的运算,当对无符号数进行加减时,要考虑进位CF,对于有符号数进行加减时,要考虑运算结果是否溢出。
为防止溢出,常将操作数利用CBW或CWD指令进行符号扩展后再进行加减运算。
对于多精度的加减运算时,对高位字节或字的加减法要分别采用ADC和DBB;对低位字节或字采用不带进位的加减指令ADD和SUB;在利用循环计算多字节的加减法时,可以用CLC指令将CF初始化为0,然后在循环体内统一使用带进位(或借位)的加减法指令。
在汇编语言进行十进制的加减运算时,首先需将操作数用BCD码示,并且要考虑操作数是用组合的BCD码还是用一个字节表示一个十进制数。
对于组合的BCD码加减法,其结果应放在AL寄存器中,再用DAA和DAS指令进行二——十进制调整。
二对于未组合的BCD码加减法,用AAA和AAS对结果进行二——十进制调整。
此外在进行十进制数减法时,要考虑用大数减小数,因为十进制数运算不能用补码表示。
对于有符号数惩罚要用IMUL指令,对无符号数乘法要用MUL指令。
字乘时AX为约定的一个乘数,其积在DX:AX中;字节相乘时AL为约定的一个乘数,其积在AX中。
乘法指令中的操作数,不得为立即数,可以为通用寄存器或存储器操作数。
对于除法要用IDIV、DIV分别对有符号数和无符号数进行除法运算。
字除法时被除数约定在DX:AX中;字节相除时,被除数约定在AX中,除法指令中的操作数可以为通用寄存器或者存储器操作数,但不得是立即数。
在进行除法运算时要考虑除数是否为零,以及其商是否溢出,在出现除零溢出时,将产生类型号为0的内部中断。
实验二运算器实验
实验二运算器实验实验二运算器am2901实验该实验操作不需用到电脑,不需实现电脑和实验箱的连接,操作全部在实验箱上完成。
实验过程当中,必须认真展开,避免损毁设备,分析可能将碰到的各种现象,推论结果与否恰当,记录运转结果。
实验目的:1、深入细致介绍am2901运算芯片的功能、结构;2、深入细致介绍4片am2901的级联方式;3、深化运算器部件的组成、设计、控制与使用等知识。
教学计算机的运算器部件主体由4片4位的运算器芯片am2901彼此串联形成,它输入16位的数据运算的结果(用y则表示)和4个结果特征位(用cy,f=0000,over,f15则表示)。
它的输出(用d则表示)就可以源自于内部总线。
确定运算器运算的数据来源、运算功能、结果处置,需要使用控制器提供的i8~i0、b3~b0、a3~a0共17个信号。
运算器的输入轻易相连接至地址寄存器ar的输出插槽,用作提供更多地址总线的信息来源。
运算器的输入还经过两个8位的244器件的掌控(采用dc1译码器的ytoib#信号)被送至内部总线ib,用作把运算器中的数据或者运算结果载入内存储器或者输入输出USB芯片。
运算器产生的4个结果特征位的信息需要保存,为此设置一个4位的标志寄存器flag,用于保存这4个结果特征信息,标志寄存器的输出分别用c、z、v、s表示。
控制标志寄存器何时和如何接收送给它的信息,需要使用控制器提供的sst2~sst0三位信号。
运算器还须要按照指令继续执行的建议,正确地获得最高位的位次输出信号,最高位和最低位的移位输出信号,为此须要布局另一个shift的线路,在控制器提供更多的ssh和sci1~sci0三位信号的掌控下,产生运算器最高位的位次输出信号,最高位和最低位的移位输出信号。
相关器件:4片am2901(alu)两片ar(74ls374)一片flag(gal20v8)一片shift(gal20v8)2片244(alutoib,74ls244)2个12位微动开关(红色)3个手动掌控信号内存芯片(hand,74ls240)am2901芯片的结构和功能:参考教材附录部分芯片具体内容线路表明:1、芯片输出受oe#信号控制,仅当其为低电平时,才有y值正常逻辑信号输出,否则输出为高阻态。
北京理工大学汇编实验二报告
北京理工大学汇编实验二报告本科实验报告实验名称:算术运算类操作实验课程名称:CPU与汇编实验实验时间:2015.10.29 任课教师:王耀威实验地点:10-102实验教师:潘丽敏实验类型:□原理验证■综合设计□自主创新学生姓名:王晓玥学号/班级:1120131332/05111311 组号:学院:信息与电子学院同组搭档:专业:信息工程成绩:一、实验要求和目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用。
6、掌握 BCD 码调整指令的使用方法二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识1、加减法处理指令主要有加法指令 ADD,带进位加法 ADC,减法指令 SUB,带进位减法指令 SBB。
2.乘除法指令和符号位扩展指令主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令 IDIV,以及符号位从字节扩展到字的指令 CBW 和从字扩展到双字的指令 CWD。
3.BCD 码的调整指令主要有非压缩的BCD 码加法调整指令DAA,压缩的 BCD 码减法调整指令 DAS,非压缩的 BCD 码加法调整指令 AAA,非压缩的 BCD 码减法调整指令 AAS,乘法的非压缩 BCD码调整指令 AAM,除法的非压缩 BCD 码调整指令 AAD。
8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表 1 所示的数据类型进行数据运算。
表 1-2-1 数据类型数据运算表数制二进制BCD码带符号无符号组合非组合运算符+、-、×、÷+、-+、-、×、÷操作数字节、字、多精度字节(二位数字)字节(一位数字)四、实验内容与步骤1、对于两组无符号数,087H 和 034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:(1)实验流程将一组操作数分别用ADD,SUB,MUL,DIV运算(2)实验代码:DATAS SEGMENTBUF1 DB 087HBUF2 DB 034HBUF3 DB 4 DUP(?);此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AX,0MOV SI,AX;两数相加MOV AL,BUF1MOV BL,BUF2ADD AL,BLMOV BUF3[SI],ALMOV AL,0MOV AL,0INC SIMOV BUF3[SI],AL;两数相减MOV AL,BUF1MOV BL,BUF2SUB AL,BLINC SIMOV BUF3[SI],ALMOV AL,0SBB AL,0INC SIMOV BUF3[SI],AL;两数相乘MOV AL,BUF1MOV BL,BUF2MUL BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;两数相除,AL中存放商,AH中存放余数MOV AX,0MOV AL,BUF1MOV BL,BUF2DIV BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;此处输入代码段代码MOV AH,4CHINT 21HCODES ENDSEND START(3)实验结果:1)第一组操作数87H,34H2)第二组操作数0C2H,5FH(4)计算结果计算状态标志表达式结果CF AF ZF OF SF PF 087H+034H 00BB 0 0 0 0 1 1 087H-034H 0053 0 0 0 1 0 1 087H*034H 1B6C 1 0 0 1 0 0 087H/084H 02(1F) 1 0 0 0 0 1 0C2H+05FH 0121 0 0 0 0 0 0 0C2H-O5FH 0063 0 0 1 0 0 1 0C2H*05FH 47FE 0 0 0 0 0 1 0C2H/05FH 02(04) 0 0 0 0 0 0(5)各运算对状态标志位的影响及其意义。
实验二实验报告表
121
+
是
-39
217
-78
69
-
是
109
-147
实验报告表2-5溢出实验记录表
问题
简要回答
什么时候出现溢出情况?
最高存储位进位时发生溢出情况,即超过8位数。
实验报告表2-6浮点数的小数点浮动实验记录表
十进制数
二进制数
3.14592653589793238462643383297
01000100100101010110110111000000
实验二实验报告表
实验名称:
学号:1120150871姓名:巴图巴雅尔·欧赟班级:04011501实验时间:2015年11月7日
十进制整数分类Leabharlann 输入十进制整数内存整型数据
内存地址号
任意正整数
5
0000010100000000
0001000100010002
任意负整数
-5
1111101111111111
0001000300010004
26
5
31~21
7
01000000100100101010110110111000
25
6
63~22
最大数
32767
11111111011111111
0001000500010006
最小数
-32768
000000001000000
0001000700010008
绝对值最小数
0
0000000000000000
000100090001000A
绝对值最大数
-32768
000000001000000
0001000700010008
北理大学计算机实验基础 实验二 实验报告表答案精编版
实验二实验报告表
实验名称:
学号姓名:班级:实验时间:
实验报告表2-1 数值型数据在计算机中的二进制实验记录表
说明:本实验对计算机内存数据的存放拟定为:①整数用两个字节存储,并负数只考虑原码;②实数用4个字节存储,其中阶码部分占一个字节。
实验报告表2-2 其他进制数据与二进制转化实验记录表
实验报告表2-3 数据的原码、补码和反码表示实验记录表
实验报告表2-4 二进制算术运算实验记录表
实验报告表2-5溢出实验记录表
实验报告表2-6浮点数的小数点浮动实验记录表
实验报考表2-7 表示浮点数的二进制串中阶码位数改变实验记录表。
实验二算术逻辑运算及移位操作微机原理与接口技术
计算内存单元中的这三个数之和,和存放在0013H 单元中,再求出这三个数之积,乘积存放在0014单元中。
试编写完成此功能的汇编语言程序段并上机验证结果(将结果截图)。
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 DS:[0013H],AL MOV AL,[BX]MUL byte ptr [BX+1] MUL byte ptr [BX+2] MOV DS:[0014],AX3.请编写完成下述功能的汇编语言程序段。
上机验证结果,程序运行的最后结果(AX)=?(将结果截图)。
(1) 传送15H 到AL 寄存器;(2) 再将AL 的内容乘以2;(3) 接着传送15H 到BL 寄存器; (4) 最后把AL 的内容乘以BL 的内容。
(1)mov al,15h (2)mov dx,2 mul dx (3)mov bl,15h (4)mul bl实 验 内容 与 实验 结 果4.用移位指令实现将AL寄存器中的无符号数乘以10。
试编写汇编语言程序段,并上机验证结果(将结果截图)。
xor ah,ahshl ax,1mov bx,axshl ax,1shl ax,1add ax,bx5.请编写完成下述功能的汇编语言程序段。
上机验证结果,程序运行后的商=?(将结果截图)。
(1) 传送数据2058H 到DS:1000H 单元中,数据12H 到DS:1002H 单元中; (2) 把DS:1000H 单元中的数据传送到AX 寄存器; (3) 把AX 寄存器的内容算术右移二位;(4) 再把AX 寄存器的内容除以DS:1002H 字节单元中的数; (5) 最后把商存入字节单元DS:1003H 中。
MOV WORD PTR[1000H],2058H MOV BYTE PTR[1002H],12H MOV AX,[1000H] MOV BX,[1002H] SAR AX,1 SAR AX,1 DIV BXMOV [1003H],AX实 验 内容 与 实验 结 果实验内容与实验结果。
计组实验-运算器实验
计算机组成原理实验课程实验报告实验名称运算器实验
实验二运算器
一.实验目的
了解简单运算器的数据传输通路。
验证运算功能发生器的组合功能。
掌握算术逻辑运算加、减、与的工作原理。
二.实验环境
Quartus 2 9.1
三.实验基本原理及步骤
算术逻辑单元运算器ALU181根据74LS181的功能,用VHDL硬件描述语言编辑而成,构成8位字长的ALU。
参加运算的两个8位数据分别为A[7..0]和B[7..0],运算模式由S[3..0]的16种组合决定,S[3..0]的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图2-1);此外,设M=0,选择算术运算,M=1为逻辑运算,C N为低位的进位位;
F[7..0]为输出结果,C O为运算后的输出进位位。
两个8位数据由总线IN[7..0]分别通过两个电平锁存器74373锁入,ALU功能如表所示。
四.仿真及软件设计
Vhd编程(非自己写,粘贴了群里文件):
将编程存为器件以及定制74373b,如图
bdf电路图:
五.实验结果分析及回答问题(或测试环境及测试结果)实验问题:
发现是
后来将IN[7…0]改为IN[7..0]
运行成功
仿真结果:
经检验结果正确:。
实验二:算术逻辑运算和移位运算
西安交通大学实验报告
课程名称:微机原理与接口技术实验名称数据传送
班级:机械36班姓名:申湾舟学号:2130101125
实验日期:2015年9 月29日教师审阅签字:1.实验目的
(1)熟悉算数逻辑运算指令和移位指令的功能;
(2)了解标志寄存器中各个标志位的意义以及指令执行对它的影响。
2.实验内容
(1)标志位改变规律;
(2)简单存储和计算;
(3)写出规定功能的程序1;
(4)写出规定功能的程序2;
(5)补全规定功能的程序;
(6)清除操作;
(7)执行已知程序;
(8)实验结果分析。
3.实验工具
操作系统:windows7;实验平台:调试工具TD.EXE。
4.实验步骤与结果
(1)标志位改变规律;
在TD.EXE中输入程序段并且单步运行,观察标志位变化。
(2)简单存储和计算;
(3)写出规定功能的程序1;
(4)写出规定功能的程序2;
(5)补全规定功能的程序;
(6)清除操作;
(7)执行已知程序;
(8)实验结果分析。
五、实验小结
Page2 of 7。
实验二 运算器实验
表2-4 最低进位Cin控制信号SCI SCI 0 0 1 1 0 1 0 1 Cin 0 1 C TCLK2 方波 典型指令 ADD、DEC INC、SUB ADC、SBB 本实验中不使用
表2-5 移位状态控制信号SSH SSH 0 0 1 1 0 1 0 1 左移 RAM0 0 C Q3 * Q0 * * F3 * 右移 RAM3 0 C CY F3⊕OV Q3 * * RAM0 RAM0 说明 补 0(逻辑左右移) 带进位移(循环移位) 带 Q 同时移位(乘除时) 补码右移
实验原理
图 2-1
Am2901 的数据通路
1、运算器数据通路
TEC-XP 教学机的运算器主要采用 4 片 Am2901 芯片级联组成,每片 Am2901 芯片实现 4 位运算,4 片芯片级联成 16 位的运算器。 Am2901 芯片的组成包括:1 个 4 位的算术逻辑单元 ALU、16 个 4 位的通用寄存器、1 个 4 位的乘商寄存器 Q 和若干个多路选择开关。Am2901 的数据通路如图 2-1 所示。 (1)算术逻辑单元 ALU ALU 有两个数据输入端 R 和 S。 R 端的数据来源有三个——寄存器 A、 数据线 D、 数值 0; S 端的数据来源有四个——寄存器 A、寄存器 B、乘商寄存器 Q、数值 0。在 RS 的各种组合 中除去没有意义的和重复的,只有 8 种有效的组合。ALU 的数据来源由控制信号 I2I1I0 决 定,其控制方式如表 2-1 所示。 ALU 可完成两个操作数的加、减、与、或、异或等多种操作,操作类型的控制有控制信 号 I5I4I3 决定,其控制方式如表 2-2 所示。ALU 若要实现乘除等其他运算,可使用串行算法 来完成。 ALU 的输出结果可保存到通用寄存器、乘商寄存器 Q,并且可以将其值乘除 2 之后再保 存,该过程控制由 I8I7I6 和 SSH 控制,其控制方式如表 2-3、表 2-5 所示。 ALU 根据其运算的结果会产生 4 个标志位——符号标志位 F3、零标志位 F=0、溢出标志 位 OVR 和进位标志位 Cn+4。ALU 运算后标志位设置可有多种不同的方式,其设置控制由 SST 控制信号决定,其控制方式如表 2-6 所示。 (2)通用寄存器组 Am2901 中的通用寄存器组是由 16 个寄存器构成, 具有双端口读写电路。 可以通过 A 口、 B 口输入的地址(4 位地址)选择寄存器,将其值送入 A、B 锁存器。其中 A 口地址指定的寄 存器是只读的,B 口地址指定的寄存器是可读写的。 A、 B 锁存器可作为 ALU 的输入数据, ALU 输出的结果值也可以保存到 B 口指定的寄存器 中,而且在写寄存器时,可以通过通用寄存器组入口处的三选一多路开关,选择写入 ALU 结果值,或其左移(乘 2) 、右移(除 2)之后的结果。 (3)乘商寄存器 乘商寄存器 Q 是为配合 ALU 的乘除运算而设置的。该寄存器输入端有三选一多路开关, 可选择 ALU 输出结果、 或乘商寄存器 Q 本身的内容作为其输入数据, 同时还可以将这两个输 入值左移(乘 2) 、右移(除 2)之后,再送入 Q 中。 (4)最低进位信号 Cin Am2901 的基本运算是加法电路, 其减法功能的实现是通过对减数求补而完成的。 因此, 在 ALU 运算时, 应使用 SCI 控制位设置最低进位信号 Cin 的状态, 具体控制方式见表 2-4。
计算机组成原理实验二
Vcc
右移门
4.ALU左移输出原理图
数据输出选择器输出信号L_OE
左移门
当CN=1 Cy 移入DBUS0 当CN=0 0 移入DBUS0
二. 实验任务
1. 计算37H+56H后左移一位的值送OUT 输出。 2. 把36H取反后同54H相与的值送入R1 寄存器。
三. 实验过程举例(1)
例:实验任务:输出ACH-BDH的值(用外部输入门IN进行数据输入) 1. 实验箱没有一条微命令能完成这个操作任务。所以要考虑一个微命令序 列——微程序来完成任务。故先把任务分解成有微命令对应的基本操作,并有序 排列这些基本操作。 2. 选择基本操作:由背景知识1,可以选用“A-W”微命令;这要求先把值 ACH送入寄存器A,值BDH送入寄存器W;题意没有要求对运算结果做进一步处 理,所以直通门D中保存的值是计算结果;把D的值送OUT寄存器输出。
控制电键
k9
k8
k7Leabharlann k6k4k3k2
k1
k0
被控对象
OUTEN
X2 X1 X0
S2
S1
S0
WEN
AEN
三. 实验过程举例(2)
第三步、实验:
① 注视仪器,打开电源,手不要远离电源开关,随时准备关闭电源, 注意各数码管、发光管的稳定性,静待10秒,确信仪器稳定、无焦糊味。
② 设置实验箱进入手动模式。 ③ ACH送入寄存器A。X2x1x0(k8k7k6)=000,AEN(k0)=0, k23-k16=10101100 按下STEP键数值打入A寄存器。 ④ BDH送入寄存器W。方法同上。 ⑤ 计算A-W:按“运算器选择表”置:k4k3k2=001;
计算机组成原理实验课程
实验二 运算器实验
组成原理实验
实验一运算器实验1、实验内容利用两片74LS181以并、串形式构成8位字长的ALU。
运算器的输出经过一个三态门和数据总线相连,运算器的两个数据输入端分别由两个锁存器锁存,锁存器的输入连至数据总线。
数据开关用来给出参与运算的数据,运算结果经过数据线,通过显示灯显示。
内容:1)掌握简单运算器的数据传输方式2)验证运算功能发生器及进位控制的组合功能2、实验目的及要求掌握运算器的数据传送通路;验证运算功能发生器(74LS181)的组合功能。
要求:完成不带进位及带进位算术运算实验、逻辑运算实验,了解算术逻辑运算单元的运用。
3、实验重点运算器的数据传送通路;运算功能发生器(74LS181)的组合功能。
4、实验难点运算器的数据传送通路;运算功能发生器(74LS181)的组合功能。
5、实验时间分配及进度安排3学时6、主要实验环节的组织教师提示实验原理,学生自己设计实验。
实验2.存储器实验内容:1)向静态随机存储器写入数据2)读出数据显示要求:掌握静态随机存储器工作特性及数据的读写方法实验3.数据通路组成实验内容:连接运算器实验模块和存储器实验模块要求:将运算器实验模块和存储器实验模块两部分电路连接在一起,掌握数据通路组成。
实验4.微程序控制器实验内容:1)时序信号产生器、微程序控制电路2)微指令设计格式、微程序编制要求:掌握时序产生器的组成原理、掌握微程序控制器的组成原理、掌握微程序的编制、观察微程序的运行。
实验5.模型机CPU组成与指令周期实验内容:1)连接微程序控制器模拟、运算器模块、存储器模块2)指令周期实验要求:将微程序控制器模拟,运算器模块,存储器模块组合在一起,联成一台简单的计算机,并进行指令周期实验。
实验6.基本模型机设计与实现内容:1)定义机器指令2)编写相应微程序,上机调试要求:在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机,编写相应的微程序,上机调试掌握整机概念。
实验二 算术逻辑运算及移位操作
实验二算术逻辑运算及移位操作一.实验任务1.实验程序段及结果表格如表:分析:程序段1:MOV AX, 1018H ;AX←1018HMOV SI, 230AH ;SI←230AHADD AX, SI ;AX=3322H,低8位为00100010B,1的个数;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFHADD AX,BX ;AX=3352H,MOV [20H], 1000H ;[20H]←1000HADD [20H], AX ;[20H]=4352HPUSH AX ;POP BX ;BX=3352H程序段2:MOV AX, 0A0AH ;AX←0A0AHADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00HADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个;数为偶数PF=1SUB AX, AX ;AX=0,运算结果为零ZF=1INC AX ;AX=1HOR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的;个数为偶数PF=1AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1MOV [10H], CX ;[10H]←0F0FH程序段3:MOV BL, 25H ;BL←25HMOV BYTE PTR[10H], 4 ;[10H]←04HMOV AL, [10H] ;AL←04HMUL BL ;AL=94H程序段4:MOV WORD PTR[10H],80H ;[10H]←0080HMOV BL, 4 ;BL←04HMOV AX, [10H] ;AX←0080HDIV BL ;AX=0020H程序段5:MOV AX, 0 ;AX←0000HDEC AX ;AX=0FFFFH,最高位为1,SF=1,低8;位1的个数为偶数PF=1,最高位向前、;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1;D3向D4有进位,AF=1NOT AX ;AX=8003HSUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1;最高位为1,SF=1OR AX, 0FBFDH ;AX=0FBFDH,最高位为1,SF=1AND AX, 0AFCFH ;AX=0ABCDH,最高位为1,SF=1SHL AX,1 ;AX=579AH,低8位1的个数为偶数,PF=1,;算数结果溢出OF=1,最高位进位CF=1 RCL AX,1 ;AX=0AF35H,低8位1的个数为偶数,;PF=1,算数结果溢出OF=12.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。
实验二 进位控制实验-报告
·1·沈 阳 工 程 学 院学 生 实 验 报 告实验室名称:计算机组成原理实验室 实验课程名称:计算机组成原理 实验项目名称:进位控制实验 实验日期: 20 年 月 日 班级: 姓名: 学号: 指导教师: 批阅教师: 成绩:一.实验目的1.验证带进位控制的算术运算功能发生器(74LS181)的功能。
2.完成加法和减法算术运算,记录结果并分析进位变化情况。
二.实验设备TDN-CM 计算机组成原理教学实验系统一台,排线若干。
三.实验内容1.实验原理进位控制运算器的实验原理如图2-1所示。
图2-1 进位控制实验原理图图中①~④对应的信号名称分别是①( )、②( )、③( )、④( )。
其中AR 为( )电平有效,LDDR1为( )电平有效。
本次实验在前面的算术逻辑运算实验基础上增加了进位控制部分。
当( )为低电平并且( )为正脉冲信号时,本次74LS181运算结果的进位将写入到74LS74锁存器中,并通过( )指示灯显示。
实验时将T4连至“STATE UNIT ”的微动开关KK2上。
2.实验步骤(1)请将图2-2实验接线图中缺少的接线及信号名称补充完整,仔细查无误后,接通电源。
实验二 进位控制实验·2·图2-2 实验接线图(2)用二进制数码开关向DR1和DR2寄存器置数。
请将操作步骤补充完整。
按照实验一中介绍的方法检验DR1和DR2中存的数是否正确,如果不正确需要( )。
如果正确请将SW-B 置为( ),将LDDR1、LDDR2和ALU-B 均设置为( ),以防止( )。
(3)在开始运算之前,如果进位标志指示灯CY 为灭,表示( )。
此时需要将进位标志( ),具体操作方法是将S3、S2、S1、S0、M 、AR 、LDDR1和LDDR2的状态置为( ),然后按动微动开关( )。
若清零时DR1寄存器中的数为FFH ,则会出现( )的情况。
(4)使Cn=( )、AR=( )、ALU-B=( ),S3 S2 S1 S0 M 状态为( ),来验证带进位加法运算及进位锁存功能。
实验二 算术运算实验
实验二算术运算实验一、实验目的1、掌握MASMforWindows环境下的汇编语言编程环境使用;2、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志位的影响及测试方法;4、掌握无符号数和有符号数运算区别及编程方法;5、掌握BCD码调整指令的使用方法二、软硬件实验环境1、硬件环境:惠普64位一体化计算机及局域网;2、软件环境:windows8,红蜘蛛管理系统,MASMforWindows。
三、实验基本原理算术运算实验需要对运行结果进行调试及查看状态字,其相关知识如下。
1) 标志位在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。
表1标志名和状态符号的对照表参照表2) 加减法指令ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。
3) 乘除法指令MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV表示带符号数除法指令。
4) 符号位扩展指令CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。
5) BCD码的调整指令在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。
组合的BCD码加法调整指令DAA;组合的BCD码减法调整指令DAS;非组合的BCD码加法调整指令AAA;非组合的BCD码减法调整指令AAS;乘法的非组合BCD码调整指令AAM;除法的非组合BCD码调整指令AAD。
8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。
表2数据类型的数据运算表四、实验步骤与内容1)对于表格中三组无符号数,试编程求这三组数的指定运算结果,并考虑计算结果对标志寄存器中状态标志位的影响:①实验分析本实验要求简单,仅对指定三组数进行基本运算。
北理大学计算机实验基础-实验二-实验报告表答案
实验二实验报告表
实验名称:
学号姓名:班级:实验时间:
实验报告表2-1 数值型数据在计算机中的二进制实验记录表
说明:本实验对计算机内存数据的存放拟定为:①整数用两个字节存储,并负数只考虑原码;②实数用4个字节存储,其中阶码部分占一个字节。
!
实验报告表2-2 其他进制数据与二进制转化实验记录表
实验报告表2-3 数据的原码、补码和反码表示实验记录表
,
实验报告表2-4 二进制算术运算实验记录表
实验报告表2-5溢出实验记录表
|
实验报告表2-6浮点数的小数点浮动实验记录表
实验报考表2-7 表示浮点数的二进制串中阶码位数改变实验记录表。
Sure 实验二
实验二算术运算类操作实验一、实验目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用。
6、掌握BCD 码调整指令的使用方法二、实验内容1、对于两组无符号数,087H 和034H,0C2H 和5FH,试编程求这两组数的和差积商,并2、在数据段定义了两个多精度的有符号16 进制数,FIRST 和SECOND ,1)求两数的和与差,并将结果存放在THIRD 为首地址的缓冲区中;2)如果把两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在FORTH 为首地址的缓冲区中。
试编程实现上述运算。
FIRSTDW 45 H,82H,96 H,57H数据分别装入X、Y、Z、V 单元,要求上式计算结果的商存入AX,余数存入DX 寄存器。
同学自行给出初始值加以验证程序。
三、理论基础本实验主要进行算术运算程序设计和调试,涉及到的知识点包括:1.加减法处理指令主要有加法指令ADD,带进位加法ADC,减法指令SUB,带进位减法指令SBB。
2.乘除法指令和符号位扩展指令主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令IDIV,以及符号位从字节扩展到字的指令CBW 和从字扩展到双字的指令CWD。
3.BCD 码的调整指令主要有非压缩的BCD 码加法调整指令DAA,压缩的BCD 码减法调整指令DAS,非压缩的BCD 码加法调整指令AAA,非压缩的BCD 码减法调整指令AAS,乘法的非压缩BCD码调整指令AAM,除法的非压缩BCD 码调整指令AAD。
四、流程图五、程序代码1、DATAS SEGMENTnum11 dw 087hnum12 dw 034hnum21 dw 0c2hnum22 dw 05fhtemp dw 0tempcx dw 0tab db '0123456789abcdef ' DATAS ENDS STACKS SEGMENTdw 32 dup(0)STACKS ENDS CODES SEGMENT ASSUMECS:CODES,DS:DATAS,SS: STACKSSTART:MOV AX,DATASMOV DS,AXmov ax,STACKSmov ss,axmov ax,0040hmov sp,axmov temp,101hmov ax,num11mov bx,num12mov dx,0div bx pushf;标志及结果入栈push axmov ax,num11mov bx,num12mul bxpushf;标志及结果入栈push axmov ax,num11mov bx,num12sub ax,bxpushf;标志及结果入栈push axmov ax,num11mov bx,num12add ax,bxpushf;标志及结果入栈push axmov cx,4l:mov tempcx,cxpop tempmov ax,0bbhpop tempmov cx,tempcxloop lmov temp,102hmov ax,num21mov bx,num22mov dx,0div bxpushf;标志及结果入栈push axmov ax,num21mov bx,num22mul bxpushf;标志及结果入栈push axmov ax,num21mov bx,num22sub ax,bxpushf;标志及结果入栈push axmov ax,num21mov bx,num22add ax,bxpushf;标志及结果入栈push axmov cx,4ll: mov tempcx,cxpop tempmov ax,0bbhpop tempmov cx,tempcxloop llCODES ENDSEND START2、DATAS SEGMENTFirst dw45H,82H,96H,57HSecond dw12H,46H,83H,45Hresult dw 2 dup(?) DATAS ENDSSTACKS SEGMENT STACKS ENDSCODES SEGMENTASSUMECS:CODES,DS:DATAS,SS :STACKSSTART:MOV AX,DATASMOV DS,AXlea si,firstadd si,6lea di,secondadd di,6mov cx, 8mov ah,0mov bh,0again:clcdec cxmov al,bladd al,[si]mov bl,[di]adc al,bldaamov bl,0adc bl,0mov bp,cxmov result[bp],axsub si,2sub di,2cmp cx,4jne againMOV AH,4CHINT 21HCODES ENDSEND START3、DA TAS SEGMENTx dw 300y dw 2z dw 333v dw 4temp dw 0tempcx dw 0DA TAS ENDSSTACKS SEGMENTdw 32 dup(0)STACKS ENDS CODES SEGMENT ASSUMECS:CODES,DS:DA TAS,SS: STACKS START:mov AX,DATASmov DS,AXmov ax,STACKSmov ss,axmov ax,0040hmov sp,axmov temp,300hmov temp,328mov ax,xmov bx,yimul bxmov bx,zadd ax,bx ;429jnc skip1inc dxskip1: mov bx,tempsbb ax,bx ;100jnc skip2dec dxskip2: mov bx,vsbb ax,bxjnc skip3 ;21dec dxskip3: mov bx,yidiv bx ;21/20=1 (1)mov ah,4chint 21hCODES ENDSEND START六、实验结果七、实验小结。
《计算机组成原理》实验1寄存器试验,2运算器试验
实验指导书课程:计算机组成原理实验教师:班级:第一章系统概述1.1 实验系统组成第二章基础模块实验实验一寄存器实验实验目的:熟悉试验仪各部分功能。
掌握寄存器结构、工作原理及其控制方法。
实验内容:利用实验仪开关区上的开关sk23-sk16提供数据,其它开关做为控制信号,将数据通过DBUS写入OUT 寄存器,并将OUT寄存器的内容送往扩展区通过数码管和发光二极管显示。
实验原理:实验箱用74HC273 来构成寄存器。
(1)74HC273的功能如下:(2)实验箱中74HC273的连接方式:(3)实验逻辑框图12、打开实验仪电源,按CON单元的nRST按键,系统复位;如果EXEC键上方指示灯不亮,请按一次EXEC键,点亮指示灯,表示实验仪在运行状态。
3、利用开关和控制信号将数据通过DBUS写入OUT寄存器,并将OUT寄存器的内容送往扩展区通过数码管和发光二极管显示。
并写出将数据5FH写入OUT寄存器的操作过程。
实验二运算器实验实验目的:了解运算器的组成结构;掌握运算器的工作原理和控制方法。
实验内容:利用实验仪提供的运算器,通过开关提供数据信号,将数据写入寄存器A和寄存器B,并用开关控制ALU的运算方式,验证运算器的功能。
实验原理:(1)实验逻辑框图:信号说明:IN0~IN7:ALU数据输入信号ALU_D0~ALU_D7:ALU数据输出信号:寄存器A写信号,低电平有效。
当T1节拍信号到来,该信号有效时,IN0~IN7数据可以写入寄存器A。
:寄存器B写信号,低电平有效。
当T2节拍信号到来,该信号有效时,IN0~IN7数据可以写入寄存器B。
:ALU计算结果读出信号,当T3节拍信号到来,该信号有效时,ALU计算结果送往ALU_D0~ALU_D7。
S3~S0,CN_I:ALU运算控制信号,控制ALU的运算方法。
T1,T2,T3:三个节拍信号,高电平有效,由con区的uSTEP按键控制,在运行状态时,依次按下uSTEP 键会依次发出T1、T2、T3节拍。
实验二16位算术逻辑运算实验
实验三16位算术逻辑运算实验一、实验目的1、掌握16位运算器的数据传送通路组成原理。
2、进一步验证算术逻辑运算功能发生器74LS181的组合功能。
3、按要求和给出的数据完成几种指定的算术逻辑运算。
二、实验内容1、实验原理16位运算器数据通路如图2-1所示,其中运算器由四片74LS181以并/串形成16位字长的ALU构成。
低8位运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,低8位数据总线通过LZD0~LZD7显示灯显示;高8位运算器的输出经过一个三态门74LS245(U33`)到ALUO1`插座,实验时用8芯排线和高8位数据总线BUSD8~D15插座KBUS1或KBUS2相连,高8位数据总线通过LZD8~LZD15显示灯显示;参与运算的四个数据输入端分别由四个锁存器74LS273(U29、U30、U29`、U30、)锁存,实验时四个锁存器的输入并联后用8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据源来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,输入的数据通过LD0~LD7显示。
2、实验接线本实验需用到6个主要模块:①低8位运算器模块;②数据输入并显示模块;③数据总线显示模块;④功能开关模块(借用微地址输入模块);⑤高8位运算器模;,⑥高8位(扩展)数据总线显示模块。
根据实验原理详细接线如下(接线①~⑤同实验一):①ALUBUS连EXJ3;②ALUO1连BUS1;③SJ2连UJ2;④跳线器J23上T4连SD;⑤LDDR1、LDDR2、ALUB、SWB四个跳线器拨至左侧(手动方式);⑥AR跳线器拨至左侧,同时开关AR拨至“1”电平;⑦ALUBUS`连EXJ2;⑧ALUO1`连KBUS1;⑨跳线器J19、J25拨至左侧(16位ALU状态);⑩高8位运算器区跳线器ZI2、CN0、CN4连上短路套。
实验二-算术逻辑单元实验
实验二算术逻辑单元(ALU)的设计与实现实验目的1.认识算术逻辑单元的功能及意义2.掌握算术逻辑单元的结构与实现3.进一步熟练Modelsim、Vivado软件和Verilog硬件描述语言的使用4.理解Digilent N4 DDR FPGA开发板上数码管显示原理实验原理1.ALU算术逻辑单元(Arithmetic/Logic Unit , ALU)是现代计算机的核心部件之一。
其内部由算术和逻辑操作部件组合而成,可以实现整数加、减等算术运算和与、或等逻辑运算。
一个典型的算术逻辑单元由两路N位输入、一路N位输出、一组功能选择信号和一些标志位(flag)组成。
两路N位输入数据作为参与运算的两个操作数,输入到ALU中,通过改变功能选择信号,控制ALU对两操作数进行不同的算术或逻辑运算操作,并将N位的结果输出,与结果一同输出的还有运算产生的标志位,例如运算结果为零的标记信号Z(zero)与运算结果溢出的标记信号O(over)、进位标志C(CY)、符号位S(SF)等,如图2-1所示。
图2- 1ALU模块示意图在本次实验中,我们把输入和输出的数据长度定为4位,数据输入命名为A、B,数据输出为F,功能控制信号输入为opcode,进位输入为C n,只产生结果为零的zero标志位。
功能控制信号opcode的定义如表2-1所示。
例如:opcode=0001,运算器实现加法运算。
2.数码管显示关于N4 DDR开发板上数码管的显示原理,参见前面的实验准备部分内容。
实验内容1.基础实验。
用实验调试软件验证ALU的功能,并操作分析、记录结果。
图2- 2 ALU虚拟实验示意图(1)运算功能和控制信号①输入输出对于的开关指示灯分配如下:输入信号A:SW(4-7) B:SW(3-0) Cn:SW8 opcode:SW(12-9)输出信号F:LD(12-15) 标志位S :LD(3) Z LD(2) O: LD(1) C: LD(0)②各种运算对应的控制信号及功能,如下表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二算术运算实验一、实验目的1、掌握MASMforWindows环境下的汇编语言编程环境使用;2、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志位的影响及测试方法;4、掌握无符号数和有符号数运算区别及编程方法;5、掌握BCD码调整指令的使用方法二、软硬件实验环境1、硬件环境:惠普64位一体化计算机及局域网;2、软件环境:windows8,红蜘蛛管理系统,MASMforWindows。
三、实验基本原理算术运算实验需要对运行结果进行调试及查看状态字,其相关知识如下。
1) 标志位在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。
表1标志名和状态符号的对照表参照表2) 加减法指令ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。
3) 乘除法指令MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV表示带符号数除法指令。
4) 符号位扩展指令CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。
5) BCD码的调整指令在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。
组合的BCD码加法调整指令DAA;组合的BCD码减法调整指令DAS;非组合的BCD码加法调整指令AAA;非组合的BCD码减法调整指令AAS;乘法的非组合BCD码调整指令AAM;除法的非组合BCD码调整指令AAD。
8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。
表2数据类型的数据运算表四、实验步骤与内容1)对于表格中三组无符号数,试编程求这三组数的指定运算结果,并考虑计算结果对标志寄存器中状态标志位的影响:①实验分析本实验要求简单,仅对指定三组数进行基本运算。
只需使用ADD、SUB、MUL、DIV四个运算命令,并以MOV命令作为数值转移的手段即可。
运算结果和状态标志的情况可以通过debug调试中的T命令进行逐步查看。
需要注意的主要有以下几点:1.在进行加法和乘法运算时,会出现对高位的进位扩展。
因此,在记录结果的时候不能仅仅记录低2位(十六进制)的结果,应记录包含高位的完整结果;2.在使用MUL和DIV命令时,语句的写法与ADD和SUB有区别;3.除法运算既可得到商,也可得到余数,余数存在DL中;4.查看结果时以三个语句为一次运算,输入三个T命令后的结果才是此次运算的结果。
②流程图③程序样例1、DATAS SEGMENT;此处输入数据段代码BUF1 DB 0ABH,64H,0A2HBUF2 DB 78H,5AH,3FHBUF3 DB 10 DUP(?)DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV SI,0MOV CX,2Q1:MOV AH,0HMOV AL,BUF1[SI]MOV BL,ALMOV AL,BUF2[SI]ADD AX,BX;进行运算MOV BUF3[SI],ALADD SI,1HDEC CXJNZ Q1 ;跳转再做一次第二组数的加法运算MOV AX,4CHINT 21HCODES ENDSEND START2、STACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV SI,0MOV CX,2Q1:MOV AH,0HMOV AL,BUF2[SI]MOV BL,ALMOV AL,BUF1[SI]SUB AX,BXMOV BUF3[SI],ALADD SI,1H ;do the operationDEC CXJNZ Q1 ;do it again with the second group of numbersMOV AX,4CHINT 21HCODES ENDSEND START3、DATAS SEGMENT;此处输入数据段代码BUF1 DB 0ABH,64H,0A2HBUF2 DB 78H,5AH,3FHBUF3 DB 10 DUP(?)DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV SI,2MOV CX,1Q1:MOV AH,0HMOV AL,BUF2[SI]MOV BL,ALMOV AL,BUF1[SI]DIV BXMOV BUF3[SI],ALADD SI,1H ;do the operationDEC CXJNZ Q1 ;do it again with the second group of numbersMOV AX,4CHINT 21HCODES ENDSENDSTART④实验结果0ABH+78H64H+5AH0ABH-78H64H-5AH0A2H*3FH0A2H/3FH2) 在数据段定义了两个多精度的有符号16进制数,BUF1和BUF2。
求两数的和与差,并将计算值存放在BUF2为首地址的缓冲区中;同时将两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在BUF2为首地址的缓冲区中。
试编程实现上述运算。
BUF1DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52H①实验分析本实验的思想是把这个两个多精度数进行按精度(每两位)进行运算,考虑进位与借位,每种运算都可以使用循环和带进位加法,或循环和带进位减法进行实现。
对于十进制数运算的要求,再辅以DAA和DAS两种十进制调整命令,将结果变为BCD码即可。
本实验中需要注意的有以下几点:1.本实验要求就过存入以BUF2为首地址的缓冲区。
为在运算时保护BUF2的数据,需定义另一个存储空间来存储和BUF2一样的数据;2.在进行不同运算的间隙应当进行清除进位标志的操作,即使用CLC命令,避免上一运算的进位影响下一位运算的结果;3.DAA和DAS都只能对AL里的结果转换为压缩BCD码,因此十进制加减结果必须存入AL里,且转换为压缩BCD码的结果要靠读取AL来获得。
②程序流程图③程序样例1、DATAS SEGMENT;此处输入数据段代码BUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 10 DUP(?)DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV SI,0MOV CX,4MOV AH,00HQ1:MOV AL,BUF2[SI]MOV BL,ALMOV AL,BUF1[SI]ADC AL,BLMOV BUF2[SI],ALINC SIDEC CXJNZ Q1MOV AX,4CHINT 21HCODES ENDSENDSTART2、DATAS SEGMENT;此处输入数据段代码BUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 10 DUP(?)DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV SI,0MOV CX,4MOV AH,00HQ1:MOV AL,BUF2[SI]MOV BL,ALMOV AL,BUF1[SI]SBB AL,BLMOV BUF2[SI],ALINC SIDEC CXJNZ Q1MOV AX,4CHINT 21HCODES ENDSENDSTART3、DATAS SEGMENT;此处输入数据段代码BUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 10 DUP(?)DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV SI,0MOV CX,4MOV AH,00HQ1:MOV AL,BUF2[SI]MOV BL,ALMOV AL,BUF1[SI]ADC AL,BLDAAMOV BUF2[SI],ALDEC CXJNZ Q1MOV AX,4CHINT 21HCODES ENDSENDSTART4、DATAS SEGMENT;此处输入数据段代码BUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 10 DUP(?)DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV SI,0MOV CX,4MOV AH,00HQ1:MOV AL,BUF2[SI]MOV BL,ALMOV AL,BUF1[SI]SBB AL,BLDAAMOV BUF2[SI],ALINC SIDEC CXJNZ Q1MOV AX,4CHINT 21HCODES ENDS④实验结果3) 编程计算280*584/190,运算结果用十六进制表示。
要求上式计算结果的商存入AX,余数存入DX寄存器。
①实验分析本实验要求很简单,可用基本运算直接完成。
值得注意的就是最后进行除法运算时,DIV命令的执行结果自动将商存在AX中,余数存于DX中,可直接满足实验要求,故无需多余操作。