32位微机原理实验(西工大)
32位微机原理教学实验系统达盛科技使用文档

32位微机原理教学实验系统达盛科技使用文档摘要:一、概述32位微机原理教学实验系统二、系统特点和优势1.基于32位微机原理2.实验教学和应用开发相结合3.采用PCI扩展32位80x86系统总线方式4.全面支持32位微机接口技术、微机控制应用、Windows设备驱动5.提高学生解决实际问题的能力正文:32位微机原理教学实验系统是一款致力于推动高校计算机教学发展和先进计算机课程体系建设的实验教学系统。
由西安唐都科教仪器公司推出的TD-PIT 32位微机教学实验系统,采用PCI扩展32位80x86系统总线方式,全面支持32位微机原理、32位微机接口技术、微机控制应用、Windows设备驱动等课程内容。
该系统的设计理念是将实验教学与实际应用开发相结合,旨在提高学生对32位微机原理的理解和应用能力,以及解决实际问题的技能。
通过系统化的实验教学,学生可以深入了解32位微机的架构、工作原理和接口技术,为未来从事计算机相关领域的工作打下坚实基础。
TD-PIT 32位微机教学实验系统具有以下几个显著特点:1.基于32位微机原理:系统围绕32位微机原理展开,让学生从基础开始,深入了解微机的内核和运行机制。
2.实验教学与应用开发相结合:系统不仅提供基础的实验教学内容,还鼓励学生进行实际应用开发,提高学生的创新实践能力。
3.采用PCI扩展32位80x86系统总线方式:系统采用业界主流的PCI扩展方式,让学生在学习过程中能够与实际应用接轨。
4.全面支持32位微机接口技术、微机控制应用、Windows设备驱动:系统涵盖了32位微机的各个方面,让学生能够全面掌握微机技术。
5.提高学生解决实际问题的能力:通过系统的实验教学和实践操作,学生可以锻炼解决实际问题的能力,为未来工作做好准备。
西安交通大学微机原理第一次实验报告

微型计算机原理与接口技术第一次实验报告实验者姓名:实验者学号:所在班级:报告完成日期:20年月日实验二分支程序的设计一、实验目的1.学习提示信息的显示及键盘输入字符的方法。
2.掌握分支程序的设计方法。
二、实验内容在提示信息下,从键盘输入原码表示的二位十六进制有符号数。
当此数大于0时,屏幕显示此数为正数;当此数小于0时,屏幕显示此数为负数;当此数等于0时,屏幕显示此数为零。
三、实验调试过程利用-u命令进行反汇编,结果如下。
三个CMP语句运行完的地址如图所示,第一个CMP运行完的是29H输出结果的地址如下图所示:首先对输入为负数时进行验证:输入FFH,设置一个断点在29H,利用-t命令观察跳转,结果如图:可以看到,程序最终正确的转入输出负的分支。
再输入正数11H,利用-t观察整个比较过程如下:可以看到,程序最终正确的转入输出正的分支。
最后输入00H,利用-t观察整个比较过程如下:可以看到,程序最终正确的转入输出0的分支。
四、实验框图及程序代码实验框图:程序代码:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDA TA SEGMENT;定义结果信息MESS1 DB 'INPUT DATA:',0DH,0AH,'$'MESS2 DB 'THIS DATA IS+',0DH,0AH,'$'MESS3 DB 'THIS DATA IS-',0DH,0AH,'$'MESS4 DB 'THIS DATA IS ZERO',0DH,0AH,'$'DA TABUF DB 3 ;定义最大可输入字符长度ACTLEN DB ? ;实际输入字符长度STRING DB 3 DUP(?) ;输入字符缓冲区DA TA ENDSSSEG SEGMENT PARA STACK 'STACK'DB 50 DUP(0)SSEG ENDSCODE SEGMENTASSUME CS:CODE,SS:SSEG,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV AX,SSEGMOV SS,AXMOV DX,OFFSET MESS1MOV AH,09HINT 21HMOV AH,0AHMOV DX,OFFSET DATABUFINT 21HCRLFMOV AL,STRINGCMP AL,38HJAE ISNEGCMP AL,30HJNZ ISPOSMOV AL,[STRING+1]CMP AL,30HJNZ ISPOSJMP ISZEROISPOS:MOV DX,OFFSET MESS2MOV AH,09HINT 21HJMP DONEISNEG:MOV DX,OFFSET MESS3MOV AH,09HINT 21HJMP DONEISZERO:MOV DX,OFFSET MESS4MOV AH,09HINT 21HJMP DONEDONE:MOV AX,4C00HINT 21HCODE ENDSEND START五、实验结果及分析编写的汇编程序EX2.ASM经过汇编MASM与链接LINK生成可执行文件EX2.EXE,测试如下:可见,程序能够正确判断输入数据的正、负、零情况。
32位微型计算机原理---史新福--第3版--西工大版---答案

01001110
01000010
01001110
11011110
异或:11010010
01001110 10011100
15.试画出组成微型计算机系统的框图并简述
各部分的作用。(18-19页) 硬件:运算器、控制器、存贮器、输入设备、 输出设备等;
软件:系统软件、应用软件;
源操作数:存储器直接寻址
目的操作数:寄存器寻址
⑵.MOV EDX,[BX]
PA=10*2000H+2000H=22000H
源操作数:寄存器间接寻址
目的操作数:寄存器寻址
⑶.MOV CL,[BX+100H]
PA=10*2000H+2000H+100H=22100H
源操作数:寄存器相对寻址
目的操作数:寄存器寻址
通讯网络系统:
16.微型计算机各部分的连接采用总线结构时有
哪几种方式?简述它们的优缺点。 (20页)
①.以CPU为中心的双总线结构:效率不高,运
算器是中间站降低了工作效率;
②.以存储器为中心的双总线结构:效率较高;
③.单总线结构:结构简单,增减设备方便;
④.三总线结构:高效率;
17.典型的微处理器是由哪几部分组成的?其主
13.试说明80486微处理器中指令流水线的硬
件组成与指令流水过程。 41-42页
硬件组成:8K内部Cache存贮器、32字节指
令预取队列、指令译码器、控制器、控制
寄存器和执行部件。 指令流水过程:1、指令预取 2、译码1 3、 译码2 4、执行 、5、回写
第三章 80x86寻址方式和指令系统
1.数据寻址方式有哪几种?
西工大win32编程实验三实验报告

西北工业大学《综合创作训练》实验报告学院:软件与微电子学院学号:姓名:杜伊专业:软件工程实验时间: 2016年3月实验地点:毅字楼311 指导教师:陈勇西北工业大学2016 年 3 月问答题:(1)Windows支持哪几种坐标系统,你的程序采用的是哪种?答:Windows 一共支持8中不同的坐标系统,分别是MM_TEXT,MM_LOMETRIC,MM_HIMETRIC,MM_LOENGLISH,MM_HIENGLISH,MM_TWIPS,MM_ISOTROPIC, MM_ANISOTROPIC。
我的程序采用的是MM_ANISOTROPIC。
(2)GDI和GDI+:GDI在全称是Graphics Device Interface,即图形设备接口。
是图形显示与实际物理设备之间的桥梁。
GDI接口是基于函数,虽然使程序员省力不少,但是编程方式依然显得麻烦。
例如显示一张位图,我们需要进行“创建位图,读取位图文件信息,启用场景设备,调色板变化“等一系列操作。
然而有了GDI+,繁琐的步骤再次被简化。
顾名思义,GDI+就是GDI的增强版,它是微软在Windows 2000以后操作系统中提供的新接口。
GDI+主要功能:GDI+主要提供以下三种功能:(1) 二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类;(2) 图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。
因此,GDI+为我们提供了Bitmap、Image等类,它们可用于显示、操作和保存BMP、JPG、GIF等图像格式。
(3) 文字显示:GDI+支持使用各种字体、字号和样式来显示文本。
相比于GDI,GDI+是基于C++类的对象化的应用程序接口,因此用起来更为简单。
GDI的核心是设备上下文,GDI函数都依赖于设备上下文句柄,程序运行结果展示:四、实验总结122。
西工大 微机原理 试题 例题讲解

第三章 80X86寻址方式和指令系统二、典型题解析例3.1 设DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=00001000H,EBX=00002000H,假设按16位实模式操作,确定下列每条指令访问内存的物理地址,并且指出源操作数及目的操作数的寻址方式。
(1)MOV AL,[1234H](2)MOV EDX,[BX](3)MOV CL,[BX+100H](4)MOV [SI],EBX(5)MOV AH,BUF[BX+SI](6)MOV EAX,[BP+1234H]分析:DS给出数据段的段基址,因此,数据段的起始物理地址为(DS)×10H=20000H。
ES给出堆栈段的段基址,因此,堆栈段的起始物理地址为(SS)×10H=30000H。
若是存储器寻址,根据寻址方式的不同,可求出相应的有效EA,再加上段的起始物理地址即为将访问的内存单元的物理地址。
解(1)源操作数在数据段中,为直接寻址方式。
EA=1234H物理地址=20000H+1234H=21234H目的操作数为寄存器寻址(2)源操作数在数据段中,为寄存器间接寻址。
EA=(BX)=2000H物理地址=20000H+2000H=22000H目的操作数为寄存器寻址(3)源操作数在数据段中,为寄存器相对寻址。
EA=(BX)+100H=2100H物理地址=20000H+2100H=22100H目的操作数为寄存器寻址(4)源操作数为寄存器寻址目的源操作数在数据段中,为寄存器间接寻址。
EA=(SI)=4000H物理地址=20000H+4000H=24000H (5)源操作数在数据段中,为相对基址变址寻址。
EA=(BX)+(SI)+BUF=2000H+4000H+1000H=7000H物理地址=20000H+7000H=27000H目的操作数为寄存器寻址(6)由于源操作数方括号中出现了BP,所以源操作数在堆栈段中,为寄存器相对寻址。
西安交大微机原理第一次实验报告(共10页)

微机(wēi jī)原理第一次实验报告一.实验(shíyàn)目的(1) 学习8086/8088指令系统中一些基本(jīběn)指令的用法和程序设计的基本方法。
(2) 熟悉PC机上建立、汇编、连接(liánjiē)、调试和运行8086、8088汇编语言程序的全过程。
(3) 学习提示信息的显示及键盘输入字符的方法。
(4) 掌握分支程序的设计方法。
二.实验内容(1) 设a,b,c,d四个数分别以单字节压缩BCD码形式存放在内存NUM开始的四个单元,计算(a+b)-(c+d)并将结果放在Y1单元中,将结果在屏幕上显示出来。
在debug中不断改变a,b,c,d内容并查看结果。
1. a=09, b=06, c=04, d=072. a=38, b=41, c=29, d=343. a=70, b=23, c=42, d=414. a=63, b=73, c=62, d=50(2) 在提示信息下,从键盘输入原码表示的二位十六进制有符号数,当此数大于0时,屏幕上显示此数为正数;当此数小于0时,屏幕上显示此数为负数;当此数为0时,屏幕上显示此数为零。
三.实验调试过程3.1 题目一调试过程C:\<DEBUG ONE.EXE-U 反汇编-R 查看(chákàn)寄存器变量值观察(guānchá)到0005时已完成(wán chéng)数据初始化,利用(lìyòng)g 5追踪到此处利用-d0指令查看内存单元,在偏移地址为0,1,2,3的地方有9,6,4,7,正是我们在代码中赋的初值。
-g d,观察(guānchá)到此时AL已赋值a=15H-g 16,计算(jì suàn)出a+b的值并赋给AL,值为0b,正确(zhèngquè)-g 19,DAA调整后AL变为11,计算(jì suàn)正确-g 1b,cl=04H成功赋值给AL,正确-g 1f,计算出(a+b)-(c+d)结果为04H,正确题目(tímù)二程序调试过程-U0, 反汇编-g 5,程序执行到此处时,完成(wán chéng)DS寄存器赋值DS=0B5EH-g a,程序执行到此处时,完成(wán chéng)SS寄存器赋值SS=0B69H-g 24,程序执行到此处,实现提示信息输出(shūchū)INPUT DATA:,手动输入C9-U-g 2f,程序执行到此处,成功(chénggōng)跳转,显示信息“THIS DATA IS –“四.程序(chéngxù)及框图4.1 题目(tímù)一程序DSEG SEGMENT ;定义数据段NUM DB 13H,27H,11H,12H ;定义(dìngyì)a,b,c,dY1 DB ?DSEG ENDS ;数据段定义结束SSEG SEGMENT PARA STACK ;定义堆栈段DB 20 DUP(?)SSEG ENDS ;堆栈段定义结束CSEG SEGMENT ;定义代码段ASSUME CS:CSEG,DS:DSEG,SS:SSEG ;各段定义(dìngyì) START: MOV AX,DSEGMOV DS,AX ;数据段段(duàn duàn)地址送DSMOV AX,SSEGMOV SS,AX ; 堆栈段段(duàn duàn)地址送SSMOV AL,[NUM]ADD AL,[NUM+1] ;计算(jì suàn)a+bDAA ;压缩BCD码加法调整DAAMOV CL,AL ; 保存a+bMOV AL,[NUM+2]ADD AL,[NUM+3] ;计算c+dDAA ;压缩BCD码加法调整DAASUB CL,AL ;计算(a+b)-(c-d)MOV AL,CLDAS ;DAS调整MOV [NUM+4],AL ;保存结果AND AL,0F0H ;取AL中高四位MOV CL,4SHR AL,CL ;BCD码高位移至低位ADD AL,30H ;AL加30H得ASCII码MOV DL,ALMOV AH,02HINT 21H ;显示DLMOV AL,[NUM+4] ; 恢复ALAND AL,0FH ;取AL低四位ADD AL,30H ;AL加30H得ASCII码MOV DL,ALMOV AH,02HINT 21H ;显示DLMOV AX,4C00HINT 21H ;返回DOSCSEG ENDSEND START ;程序结束4.2 题目二程序CRLF MACRO ;宏定义MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21H ;显示换行ENDM ;宏结束DATA SEGMENT ;定义数据段MESS1 DB 'INPUT DATA:',0DH,0AH,'$'MESS2 DB 'THIS DATA IS+',0DDH,0AH,'$'MESS3 DB 'THIS DATA IS-',0DH,0AH,'$'MESS4 DB 'THIS DATA IS ZERO',0DH,0AH,'$'DATABUF DB 3 ;定义(dìngyì)最大可输入字符长度 ACTLEN DB ? ;实际(shíjì)输入字符长度STRING DB 3 DUP(?) ;输入(shūrù)字符缓冲区DATA ENDS ;数据(shùjù)段结束SSEG SEGMENT PARA STACK 'STACK' ;定义堆栈段 DB 50 DUP(0)SSEG ENDS ;堆栈段结束CODE SEGMENT ;定义代码段ASSUME CS:CODE,SS:SSEG,DS:DATA ;各段定位START: MOV AX,DATAMOV DS,AX ;DS段寄存器赋值MOV AX,SSEGMOV SS,AX ;SS段寄存器赋值MOV DX,OFFSET MESS1MOV AH,09HINT 21H ;显示提示信息MOV AH,0AHMOV DX,OFFSET DATABUFINT 21H ;接收键入的字符串CRLF ;回车换行MOV AL,STRING ;接收字符高位CMP AL,38H ;比较高位和38H的大小JGE FUSHU ; 若高位>=38H?,跳至FUSHU处执行 CMP AL,30H ;比较高位和30H的大小JE ZERO ;若高位=30H?,跳至ZERO处执行ZHENGSHU: MOV DX,OFFSET MESS2 ;显示输出为正数 MOV AH,09HINT 21HJMP OVERFUSHU: MOV DX,OFFSET MESS3 ;显示输出为负数MOV AH,09HINT 21HJMP OVERZERO: MOV AL,[STRING+1] ;显示输出为0CMP AL,30HJNE ZHENGSHUMOV DX,OFFSET MESS4MOV AH,09HINT 21HJMP OVEROVER: HLTCODE ENDS ;代码段结束(jiéshù)END START ;程序(chéngxù)结束五.实验(shíyàn)结果5.1 题目(tímù)一实验结果1. a=09, b=06, c=04, d=07时,计算结果为042. a=38, b=41, c=29, d=34时,计算结果为163. a=70, b=23, c=42, d=41时,计算结果为104. a=63, b=73, c=62, d=50时,计算结果为245.2 题目二实验结果键盘输入c9,输出“THIS DATA IS-“键盘输入17,输出“THIS DATA IS +”键盘输入00,输出”THIS DATA IS ZERO’六.必要的分析6.1 题目一分析1. 压缩BCD码需要用到压缩BCD码的调整指令2. 程序末尾显示要利用DOS功能调用3.显示单个字符,要先将其转化为ASCII 码,再利用DOS功能调用的02H功能。
32位微型计算机原理与接口技术实验指导

32位微型计算机原理与接口技术实验指导下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!32位微型计算机原理与接口技术实验指导引言在现代计算机科学领域中,微型计算机的原理和接口技术至关重要。
微机原理及应用西工大机考

微机原理及应用西工大机考微机原理及应用是计算机科学与技术领域的重要基础课程之一。
它主要涵盖了微处理器的结构、工作原理、指令系统、硬件控制等方面的知识,并通过实验操作加深对微机系统的理解和应用。
下面将从微机原理和应用两个方面进行讨论。
首先,微机原理涉及到微处理器的结构和工作原理。
微处理器是微型计算机的核心元件,它可以执行各种计算机指令,并控制其他硬件设备的工作。
微处理器的基本结构包括运算器、控制器和寄存器等部分。
运算器负责执行算术和逻辑运算,控制器负责提取指令和执行指令,寄存器用于存储指令和数据。
微处理器内部的各个部件通过总线进行数据传输和控制信号传递。
而微处理器的工作原理是通过时钟信号的驱动来完成指令的执行和数据的处理。
其次,微机原理还包括微处理器的指令系统和硬件控制。
指令系统是微处理器所能识别的指令的集合,它决定了微处理器的功能和性能。
指令系统可以分为数据传输指令、算术逻辑指令和控制转移指令等几类。
在指令执行过程中,微处理器需要通过硬件控制进行指令的译码、数据的读写和操作的控制。
硬件控制包括时序控制、地址计算和中断控制等。
通过对微处理器的指令系统和硬件控制的研究和理解,可以进行微机系统的设计和优化,提高计算机的性能和可靠性。
微机应用方面,主要包括微机系统的组成和工作原理的应用。
微机系统的组成包括主机系统和外设系统。
主机系统由中央处理器、存储器和输入输出接口等组成,外设系统包括键盘、显示器、打印机等各种外部设备。
微机系统的工作原理是通过软件指令的执行和数据的处理来完成各种应用任务。
例如,在信息处理领域,可以通过微机系统进行数据的输入、处理和输出。
在控制领域,可以通过微机系统实现对各种设备和过程的自动控制。
除了以上内容,微机原理及应用还涉及到微处理器的性能参数和性能评价、存储器系统、总线技术、中断系统以及微机系统的设计和优化等方面的知识。
对于学习者来说,通过对微机原理及应用的学习,可以深入了解计算机系统的组成和工作原理,掌握微处理器的结构和工作原理,掌握微机系统的设计和优化方法,为后续的进一步学习和应用打下坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 2 3 4 5 6
实验一 实验二 实验三 实验四 实验五 实验六
BCD码的运算 循环结构程序 排序程序 分支程序 数据区移动 找“零”个数
实验一 BCD码的运算 BCD码的运算
一.实验目的
1.熟悉在MASM集成环境下建立、汇编、链接、调试和运行汇编语言程 序的全过程。 2.掌握汇编语言程序结构中数据段、堆栈段、代码段定义及内存分配方 法。 3.学会DEBUG调试程序主要命令的使用方法。 4.掌握用组合BCD码表示数据的方法,并熟悉其加、减、乘、除运算。
指定的寄存器 AH INT 21H 入口参数 调用功能的功能号
…
EX1:从键盘输入单字符 MOV AH,01H ;1号功能调用 INT 21H 将键盘输入字符的ASCII码送到 AL。 EX2:从键盘输入字符串
EX4:输出字符串
…
BUF
DB ‘Thank you $’
BUF
DB 10 DUP(?)
多位十进制数加法
.model small .data data1 db 11h,22h,33h,44h,00h data2 db 99h,88h,77h,66h,00h .code startup mov si,offset data1 ;设指针 mov di,offset data2 clc ;清进位 mov cx,5 ;设加法次数 lop: mov al,[si] ;取第一加数 adc al,[di] ;取第二加数 daa ;十进制调整 mov [di],al ;结果存入指定单元 inc si ;指针加1 inc di loop lop ;循环 .exit 流程图: SI DI 开始 Data1首址 Data2首址 清进位 设加法次数 AL AL 第一加数 AL+第二加数
微机原理实验课
内蒙古民族大学物理与电子信息学院 实验教学中心
MASM 使用简要说明
程序设计者完成在纸上的程序编写工作还无法确定程序是否正 确,因此下一步就是要对程序进行测试和调试,使它能正确运行。为 了方便和有效的进行调试常常借助一些软件开发工具。 使用这些软件开发工具,对一个汇编语言程序的开发全过程如 下图所示:
十进制调整; 部分和回送 指向下单元数 CX-1=0? Y 结束 N
两34h data2 db 56h data3 dw 1 dup (?) .code .startup mov bl,data1 ;第一乘数转换成16进 制数 mov bh,bl and bh,0fh and bl,0f0h mov cL,4 shr bl,cL mov al,10 mul bl add al,bh movzx cx, al ;置加法次数计数器
循环体 循环控制条件 N Y 循环控制条件 循环体 Y DO-WHILE结构 DO-UNTIL结构 N
子程序结构: procedure name PROC RET procedure name ENDP Attribute
Attribute
NEAR 调用程序和过程在同一个代码段中 FAR 调用程序和过程不在同一个代码段中
DEBUG的使用方法 DEBUG的使用方法
◆
进入与退出:
出现提示符”-”直接输入DEBUG进入,退出则输入Q
◆
显示命令:
显示内存单元内容---D命令 显示寄存器内容---R命令 显示源程序指令(反汇编)---U命令
◆
程序运行:
连续运行方式---G命令 跟踪运行方式---T命令
软件实验部分
本部分共进行6次实验,实验内容如下:
mov bl,data2 ; mov ax,0 clc lop: add al,bl daa xchg ah,al adc al,0 daa xchg ah,al loop lop mov data3,ax nop nop nop .exit end 第二乘数做BCD 加法,加第一乘数次
;积送乘积存储单元
主程序流程: 主程序流程:
开始 CX 循环次数
延时子程序流程: 延时子程序流程:
延时子程序定义 BX CX 第二时常数 第一时常数 CX-1=0? N Y BX-1 N BX=0? Y 子程序返回 子程序结束关键词
字符串 显示功能调用 延时子程序调用 显示数字修改 CX-1=0? Y 结束 N
实验三 排序程序
有关问题的说明
循环程序的三个组成部分: ⑴ 循环初始状态设置。设置循环次数、为循环体正常工作建立初始状态等。 ⑵ 循环体。循环工作的主体,包含循环的工作部分和修改部分。循环的工作部 分是为完成程序功能而设计的程序段;循环的修改部分是为保证每一次重复时, 参加执行的信息能发生有规律的变化而建立的程序段。 ⑶ 循环控制部分。选择一个循环控制条件来控制循环的运行和结束。 循环程序的结构: 循环初始状态 循环初始状态
BCD码用4位二进制编码表示一个十进制数,又称二—十进制数,由于这 四位二进制数的权值为8421,故也称BCD码为8421码。在计算机里,用 一个字节的低四位表示一位十进制数—非组合BCD码;用一个字节表示 两位十进制数—组合BCD。 非组合BCD码 uuuu 1001 例:计算机里79d 非组合BCD码:uuuu0111 uuuu1001 组合BCD码 0111 1001 例:计算机里79d组合BCD码:01111001 在计算机里,所有的运算都是按二进制进行的,运算结果是二进制数 (即十六进制数)为了把十六进制运算结果转换成十进制,汇编语言中 引进了组合BCD码加法调整指令DAA和减法调整指令DAS。 DAA 加法十进制调整指令 AL AL中的十六进制数转为BCD形式 该指令之前要执行ADD或ADC。 调整方法:若AF=1,或AL中的低四位是十六进制的A~F,则AL内 容加06h,AF置1; 若CF为1,或AL中的高四位是十六进制的A~F,则AL内容加60h,CF置1
EAX 清进位 BX
SI所指加数
将BX扩展为32位 EAX EAX+EBX+CF
SI 指向下一加数 CX-1=0? Y 存结果 结束
N
软件延时器
.model small .data data db 20h,20h,20h,20h,20h,39h,0dh,'$' .code .startup mov cx,09h ; 设循环次数 lop: mov ah,09h ;显示功能调用 lea dx,data int 21h call near ptr delay ;调用延时子程序 dec data+5 ;修改显示数字 loop lop .exit Delay proc near uses cx mov bx,06ffh Delay1 :mov cx,0h loop $ dec bx jnz delay1 ret Delay endp end ;延时子程序 ;设第二时常数 ;自身循环CX次 ;第二时常数减1 ;不为零循环
LEA DX,BUF MOV AH,0AH ;0A号功能调用 INT 21H 将键盘输入的字符串写到 RAM 中去,击 回车键表示字符串结束。字符数与予留 空间的关系为:少补零多丢失。 EX3:输出单字符 MOV DL,’M’ MOV AH,02H; 2号功能调用 INT 21H 将 DL 中字符从屏幕上显示出来。
两位十进制数乘法流程图:
开始 BL BH 第一乘数 第一乘数
1
进位 BCD 码 转 换 成 16 进 制 数 AL AH AL AL+0+CF
十进制
AL
AL+BL
分离出第一乘数的“个位” 分离出第一乘数的“十位” 第一乘数的“十位”移到 “个位” 乘 10 到16进制 的第一乘数 CX 16进制的第一乘数 BL 第 AX 乘数 0
N 编辑程序 源程序 文件 N .ASM 宏汇编 程序 MASM 语法有错?
Y 目标程 连接程序 LINK 序文件 .OBJ
程序 正确?
调试程序 DEBUG
可执行 文件 .EXE
Y 结束
进入方法
开始/程序/附件/c:命令提示符 C:>e: E:>cd masm5 E:>masm5>edit 文件存储时一定要用.asm为扩展名 E:>masm5>masm E:>masm5>link 连接结束以后即可使用debug命令
…
… …
多字节无符号数加法
.MODEL SMALL .586 .DATA DATAS DW 1111H,2222H,3333H,4444H,5555H DW 6666H,7777H,8888H,9999H,0AAAAH RESULT DD 1 DUP(?) .CODE .STARTUP ;设指针 MOV SI,OFFSET DATAS ;累加次数 MOV CX,10 MOV EAX,0 ;清累加器 ;清进位 CLC ;取加数到BX LOP: MOV BX,[SI] ;将BX扩展成32位 MOVZX EBX,BX ;带进位加 ADC EAX,EBX ;改指针 INC SI INC SI LOOP LOP ;循环加 ;存结果 MOV RESULT,EAX .EXIT END 开始 SI CX DATAS的首址 累加次数 0
单字节无符号数排序
流程图:
BL CX 开始 数据个数-1 BL扩展
数据指针 SI 置 0 累加器 前数
一.实验目的 1.学习无符号数比较大小指令; 2.掌握多重循环编程方法; 3.掌握汇编语言编写排序程序的思路和方法。 二.实验内容 1.单字节无符号数排序。 2.去极值滤波。 三.实验要求 1.单字节无符号数排序:DATANUM单元开始存放双字节无符号数,表示要排序数据 的个数,DATAS单元开始存放要排序的数据,数据个数至少10个,程序运行之后, 这些数据按照由小到大的顺序仍然存放于DATAS单元开始的位置。 2 .去极值滤波:某控制系统为了抗干扰,采用去极值滤波法处理采集数据,取连 续6个A/D采样值(12位——双字节,低12位),要求去掉最大值和最小值,将 余下4个数求平均值,用该平均值代表当前时刻系统状态的真值。试编一程序完 成这个滤波过程。