实验8汇编实验

合集下载

STM8S_汇编

STM8S_汇编

不知是心血来潮,还是其它因素,突然又想起玩汇编语言了。

这几年也没少跟单片机打交道,包括51系列,430系列,ARM系列,但都是用C语言来开发。

不过由于使用C语言,实际上对这些CPU的了解还是不够深刻,当然除了51之外,因为那是我多年前曾经用汇编开发过的芯片。

尽管当今C语言已经在嵌入式产品的开发过程中成为主流,但我个人依然认为,要想真正了解CPU的特点,还得用汇编语言。

不知道这种观点是对还是错,也许是因为自己从硬件做起,写过机器码,用汇编语言做过优化,因此对汇编语音有一种特殊的偏爱。

51系列的芯片用多了,感觉有时写起程序来不太方便,因此总想寻找一些其它的8位单片机玩玩,正好手头有一个ST的三合一开发板,那是09年参加ST研讨会上买的,一直躺在那里,与其躺在那里,不如拿出来玩玩。

这几年,ST在国内推广STM32,力度不小,不过我一直没有用过,只是初步地看看资料。

原因在于在32位单片机方面,我一直在用Luminary公司的LM3S1138,感觉不错,一直都很顺利。

09年ST举办的研讨会上,ST除了介绍STM32外,也介绍了STM8,当时听了以后,觉得还行。

尤其是会上的低功耗演示给我留下了很深刻的印象。

基于这些,我决定好好地玩一下STM8芯片,并将玩的结果拿出来与大家共享。

STM8与汇编语言(2)第一次打开STM8的手册时发现,CPU中的寄存器只有6个,即A、X、Y、SP、PC 和CC。

这几个寄存器,看上去特象早年苹果机使用的微处理器6502。

在眼下都是多寄存器的RISC潮流下,不知ST推出的这种CPU架构有什么意图?这样的芯片能否与Microchip 或者Atmel的RISC结构的MCU竞争呢?在此我无意做评论,我只想了解这颗芯片。

通过仔细研究,我发现由于STM8采用了32位宽度的程序存储器结构,使得大部分的指令都能在一个周期内取出,并且采用了哈佛结构和流水线,相当多的指令也都是单周期完成的。

这样的话,虽然CPU是CISC架构的,但也基本上达到了单周期指令的效果,就像手册上说的,CPU的性能达到了20MISP◎24MHZ。

中考物理人教国标九年级全册实验试题汇编(8)

中考物理人教国标九年级全册实验试题汇编(8)

中考物理人教国标九年级全册实验试题汇编(8)
实验十 探究影响滑轮组机械效率的因素
在“探究影响滑轮组机械效率的因素”实验中,小红用如图7所示的滑轮组分别做了三次
实验,第一次使用塑料滑轮,第二次使用铝制滑轮,第三次使用铁制滑轮,实验数据记
录如下表:
物 (1)这个实验使用的测量工具是 和弹簧测力计。

(2)在实验操作中应竖直向上 拉动弹簧测力计。

(3)在表中的空格处填上第三次实验的机械效率。

(4)从实验数据分析可知:提升同一物体,动滑轮越重,
滑轮组的机械效率越 。

(1)请在图中画出实验中滑轮组的绕绳方法。

(2)将表格中的数据补充完整。

(3)用同一滑轮组提升不同重物至同一高度,提升的物重增加时,除克服动滑轮重所做的额外功外,其它额外功将_________ (选填“变大”、“变小”或“不变”)。

进一步分析可知,在动滑轮和绳重一定的情况下,该滑轮组的机械效率与_________和_________有关。

(4)第一次实验中,钩码上升0.1m所用的时间为1.5s,则动力的功率为_________W。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是计算机中最基本的语言,通常用于处理硬件相关问题。

在这个实验中,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

以下是我们的实验报告。

正文:1. 实验环境我们使用的实验环境是Intel 8086微处理器与高级汇编语言。

微处理器使用的是PCB-512主板,而高级汇编语言是MASM。

2. 实验目的我们的实验目的主要是学习汇编语言的基础知识和编程技巧,包括了汇编语言的寄存器、指令、内存管理等方面的知识。

我们的另一个目的是掌握汇编语言的常用编程技巧,能够独立完成一些简单的汇编程序。

3. 实验内容我们的实验内容主要包括以下几点:(1)学习汇编语言的基础知识,包括寄存器、指令、内存管理等方面的知识。

(2)掌握汇编语言的常用编程技巧,包括数据输入输出、运算、跳转等基本操作。

(3)实践用汇编语言编写程序,如计算器、菜单等实用程序。

(4)了解8086微处理器的结构和原理。

4. 实验过程在这个实验过程中,我们完成了以下几个程序:(1)计算器计算器是一个简单的程序,主要用于实现两个数之间的加、减、乘、除等基本运算。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

(2)菜单菜单是一个实用程序,主要用于展示一个简单的菜单并实现用户选择相关功能的功能。

我们使用了汇编语言中的跳转指令、输入输出指令等实现了这个程序。

5. 实验结果在我们的实验中,我们成功完成了上述两个程序。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

6. 实验总结在这个实验过程中,我们学习汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

我们通过编写计算器和菜单等简单实用程序,加深了对汇编语言的理解和认识。

我们认为这个实验对我们今后的学习和工作都有很大的帮助。

结论:通过这个实验,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

王爽《汇编语言》实验8

王爽《汇编语言》实验8

王爽《汇编语⾔》实验8
实验8是要求阅读⼀个很奇葩的代码:
assume cs:code
code segment
mov ax, 4c00h
int 21h
start: mov ax, 0
s: nop
nop
;下⾯这段代码主要是把s2的内容复制到s处
mov di, offset s
mov si, offset s2
mov ax, cs:[si]
mov cs:[di], ax
s0: jmp short s
s1: mov ax, 0
int 21h
mov ax, 0
s2: jmp short s1
nop
code ends
end start
先看看开始时代码在内存的存在:
对⽐前⾯的代码,可以看出,程序从start处开始运⾏,然后⼀直运⾏到mov cs:[di], ax处,
此时再查看内存:
发现标签s处的代码已经被更改成为jmp 0000,但是s2处的明明是jmp short s1啊,为什么把代码复制到s处就不同了?
再仔细观察,发现这个指令的机器码EBF6并没有改变,⽽因为jmp short是段内转移,机器码记录的是位移,F6对应的是-8的位移,⽽由于s 刚好处于cs:0008处,运⾏jmp后刚好后移8位,到达最开始的mov ax, 4c00h处,到此运⾏结束。

这⾥对于这个-8的位移控制得⾮常精妙,从s2转移到s1需要-8的位移,⽽从s转移到段头处也刚好是-8的位移,所以程序运⾏成功。

从这⾥可以看出,⼀个精妙的汇编代码⽐⾼级语⾔更有意思^_^。

萃取精馏制无水酒精

萃取精馏制无水酒精

实验8 萃取精馏制无水乙醇实验一.实验目的精馏是化工过程中重要的别离单元操作,其根本原理是根据被别离混合物中各组分相对挥发度(或沸点)的差异,通过一精馏塔经屡次汽化和屡次冷凝将其别离。

在精馏塔底获得沸点较高(挥发度较小)产品, 在精馏塔顶获得沸点较低(挥发度较大)产品。

但实际生产中也常遇到各组分沸点相差很小,或者具有恒沸点的混合物,用普通精馏的方法难以完全别离,此时需采用其他方法,如恒沸精馏、萃取精馏、溶盐精馏或加盐萃取精馏等。

萃取精馏是在被别离的混合物中参加某种添加剂,以增加原混合物中两组分间的相对挥发度〔添加剂不与混合物中任一组分形成恒沸物〕,从而使混合物的别离变得很容易。

所参加的添加剂为挥发度很小的溶剂〔萃取剂〕。

由于萃取精馏操作条件范围比拟宽,溶剂的浓度为热量衡算和物料衡算所控制,而不是为恒沸点所控制,溶剂在塔内也不需要挥发,故热量消耗较恒沸精馏小,在工业上应用也更为广泛。

乙醇—水能形成恒沸物〔恒沸物质量组成95.57%,恒沸点78.15℃〕,用普通精馏的方法难以完全别离,本实验利用乙二醇为别离剂进展萃取精馏的方法别离乙醇—水混合物制取无水乙醇。

本实验的目的是:1.熟悉萃取精馏的原理和萃取精馏装置;2.掌握萃取精馏塔的操作方法和乙醇—水混合物的气相色谱分析法;3.利用乙二醇为别离剂进展萃取精馏制取无水乙醇。

二.实验原理萃取精馏是在被别离的混合物中参加添加剂(溶剂),添加剂不与混合物中任一组分形成恒沸物,但能改变原混合物中组分间的相对挥发度,且添加剂沸点较原溶液中各组分的沸点均高。

由化工热力学研究,压力较低时,原溶液组分1和2的相对挥发度可表示为α12 = p1Sγ1/ p2Sγ2参加溶剂S后,组分1和2的相对挥发度〔α12 〕S那么为〔α12 〕S = 〔p1S / p2S〕T S *〔γ1/γ2〕S式中,〔p1S/ p2S〕T S——参加溶剂S后,三元混合物泡点下,组分1和2 的饱和蒸汽压之比;〔γ1/γ2〕S——参加溶剂S后,组分1和2的活度系数之比。

植物学实习报告模板汇编8篇(植物学实验报告总结)

植物学实习报告模板汇编8篇(植物学实验报告总结)

植物学实习报告模板汇编8篇(植物学实验报告总结)植物学实习报告篇120xx年7月13日,结束了泉州、厦门站的动物野外实习后,我们来到了南靖和溪,由孔祥海老师带队,开头了这次的植物野外实习。

一、实习目的与任务1.了解采集地植被分布状况和华南地区森林的基本结构,熟识部分北回归线植物及其生境,充分理解植物的分布与环境的相关性。

2.通过野外实习巩固理论学问,在实践中加深对理论学问的理解和记忆。

3.激发学习生物科学、探究大自然的热忱,通过形式多样的学习和老师同学之间的相互沟通,提高对植物学的兴趣。

二、实习步骤与内容7月13日下午,从实习宿舍(和溪镇热带雨林实习基地)动身,在孔老师的带领下,我们在和溪镇沿着大路熟识沿路植物并采集标本20余种。

7月14日下午,我们来到了乐土雨林.在孔老师等的带领下,沿路熟识了许多植物.并以小组为单位(五人一组)采集标本70余种。

同时压制了所采集的标本。

7月14日下午,校车再次把我们送到乐土雨林后便返回了。

我们在孔老师等的带领下沿路认种并采集标本50余种。

同时压制了所采集的标本。

7月15日上午,我们来到了仙岭,在孔老师等的带领下,沿山路认种并采集了30余种植物标本。

7月15日下午,我们在宿舍压制所采集的标本。

(并在晚饭后返回了学校)7月16日,回到了学校,我们在试验室忙着压制标本,挂标签,复习巩固。

7月17日上午,针对这次植物野外实习,以小组为单位孔祥海老师对我们进行了考核。

三、实习心得与体会这次在南靖和溪的实习使我获益良多。

最直接的学习成果就是对所采集的160多种植物的特征以及所属科目有所熟识。

到现在,我还记得种子会粘人衣服的鬼针草,属于百合科有着好听名字的吉利草,长了“瘤”的福建莲座蕨,有药用作用的积雪草,天南星科的名符其形的一把伞天南星,跟姜长得很相像的高粱姜……以前还没有认真地去观看学习的时候,一棵树就是一棵树,全部的叶子长得都差不多,全部的树皮都是一个样。

而在这次的观看中,我发觉每一株植物的叶子都长得那么有性格,有些气味特殊,有些叶脉惊奇,有些形状惊奇,有些毛茸茸有些光溜溜……就连貌不惊人的树皮也分长条形剥落还是片状剥落等等。

实验8+乐曲程序

实验8+乐曲程序

实验8 乐曲程序实验目的:编写一个汇编程序,使PC 机演奏出《两只老虎》的乐曲。

通过两种方式实现发声程序:1. 通过位触发方式,通过控制驱动脉冲的频率和持续时间使计算机发出音响。

掌握61h 端口的使用及控制发声时间的长度方法。

2. 利用定时器发出指定频率的声音,掌握端口42h 、43h 的使用方法。

了解不同的计算机每秒执行指令的速度不同。

实验要求1、利用定时器产生声音的方法编写程序,使PC 机演奏出《两只老虎》的乐曲。

乐曲《两只老虎》的简谱如下:两只老虎1=C 4/4| - 1 5 2 | - 1 5 2| 1 3 54 56 | 1 3 54 56 | - 5 4 3|- 5 4 3 | 1 3 2 1 | 1 3 2 1∙∙两个八度的音阶表曲谱主要段对应的频率如下:3333247220 196 175 165 147 131 | 7 6 5 4 3 2 1 | BA G F E D C | 频率音符音名∙∙∙∙∙∙∙ 523494 440 392 349 330 294 262 | 1 7 6 5 4 3 2 1 | C'B' A' G' F' E' D' C' | 频率音符音名∙2、对有潜力的同学,可通过两种方式实现,并比较之。

3、实验时也可将其他好听的歌曲通过这种方式播放。

实验结果能流畅地播放《两只老虎》乐曲。

实验报告要求:1、分析要点及调试后的正确程序。

2、程序运行写出听觉感受。

2、实验体会。

实验要点:1.乐谱中每个音符有音高和音长两种属性,可以按照每个音符的频率和节拍定义成两个数据表,程序每次从表中取出频率和节拍来控制声音的音高和音长。

2.每个音符的频率值Freq经过转换后送入定时器的42H端口,以产生相应频率的脉冲。

转换公式为:533H×896÷Freq=1234DCH÷Freq3.乐曲演奏完毕后,要完成对61H端口的复位操作以避免死机。

汇编语言 王爽_完整答案

汇编语言 王爽_完整答案

第1章基础知识检测点1.1(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。

(2)1KB的存储器有1024个存储单元。

存储单元的编号从0到1023。

(3)1KB的存储器可以存储1024*8个bit,1024个Byte。

(4)1GB、1MB、1KB分别是2^30、2^20、2^10 Byte。

(n^m的意思是n的m次幂)(5)8080、8088、80286、80386的地址总线宽度分别是16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。

则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。

(7)从内存中读取1024字节的数据,8086至少要读512次、80386至少要读256次。

(8)在存储器中,数据和程序以二进制形式存放。

第2章寄存器答案检测点2.1(1) 写出每条汇编指令执行后相关寄存器中的值。

mov ax,62627 AX=F4A3Hmov ah,31H AX=31A3Hmov al,23H AX=3123Hadd ax,ax AX=6246Hmov bx,826CH BX=826CHmov cx,ax CX=6246Hmov ax,bx AX=826CHadd ax,bx AX=04D8Hmov al,bh AX=0482Hmov ah,bl AX=6C82Hadd ah,ah AX=D882Hadd al,6 AX=D888Hadd al,al AX=D810Hmov ax,cx AX=6246H(2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。

解:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。

汇编语言程序设计实验篇

汇编语言程序设计实验篇

汇编语言程序设计实验篇在计算机科学领域中,汇编语言是一种低级编程语言,它直接操作计算机硬件资源,具有高效性和灵活性。

本篇文章将介绍汇编语言程序设计实验的相关内容,包括实验目的、实验环境、实验步骤和实验总结。

实验目的汇编语言程序设计实验的主要目的是使学生掌握使用汇编语言编写程序的基本技能。

通过实践操作,学生将理论知识应用于实际情境中,深化对汇编语言的理解,并培养一定的编程能力。

实验环境在进行汇编语言程序设计实验之前,学生需要准备适当的实验环境。

以下是必备的硬件和软件资源:1. 计算机:一台能够运行汇编语言的计算机。

2. 汇编语言编辑器:如MASM、NASM等,用于编辑和编译汇编语言程序。

3. 调试器:如调试版本的DOSBox、CodeView等,用于调试程序,定位和解决错误。

实验步骤在进行汇编语言程序设计实验时,学生可以按照以下步骤进行操作:1. 确定实验内容:根据实验要求,选择适当的汇编语言程序设计任务,如编写一个计算两个数相加的程序。

2. 编写程序源代码:使用汇编语言编辑器,编写程序的源代码,包括程序的指令、数据段和代码段等。

3. 编译程序:使用编辑器提供的编译指令,将源代码编译成机器码,生成可执行文件。

4. 调试程序:使用调试器,对程序进行调试,定位和解决错误,确保程序能够正常运行。

5. 运行程序:运行已调试通过的程序,验证程序的正确性,并观察程序的执行结果。

6. 优化程序:对程序进行进一步优化,提高程序的执行效率和性能。

7. 总结实验结果:根据实验过程和结果,总结实验经验和教训,思考改进和拓展的可能性。

实验总结通过进行汇编语言程序设计实验,学生可以获得以下收获:1. 熟悉汇编语言:实验使学生更加熟悉汇编语言的语法和指令,增强对计算机底层运行机制的理解。

2. 培养编程能力:实验锻炼学生的编程能力和解决问题的能力,提高他们的逻辑思维和分析能力。

3. 提升实践能力:实验让学生通过实践操作,将理论知识应用于实际情境中,增强实践能力和动手能力。

高中化学无机物的性质实验汇编

高中化学无机物的性质实验汇编

高中化学无机物的性质实验汇编黑龙江鸡西市第一中学王维德一、氢元素单质及其化合物实验1:球形干燥管中装有碱石灰干燥剂。

导管口蘸些肥皂水,控制氢气流速,吹出肥皂泡。

当肥皂泡吹得足够大时,轻轻摆动导管,让肥皂泡脱离管口,观察现象。

现象与解释:肥皂泡迅速上升,说明氢气比同体积的空气轻。

实验2:在带尖嘴的导管口点燃纯净的氢气,观察火焰的颜色。

然后在火焰的上方罩一个冷而干燥的烧杯,过一会儿,观察烧杯壁上有什么现象发生。

现象与解释:纯净的氢气在空气中安静地燃烧,产生淡蓝色火焰。

用烧杯罩在火焰的上方时,烧杯壁上有水珠生成,接触烧杯的手能感到发烫。

氢气在空气里燃烧,实际上是氢气跟空气里的氧气发生了化合反应,生成了水并放出大量的热。

实验3:取一个一端开口,另一端钻有小孔的纸筒,用纸团堵住小孔,用向下排空气法收集氢气,使纸筒充满氢气。

移开氢气发生装置,拿掉堵小孔的纸团,用燃着的木条在小孔处点火,注意有什么现象发生。

现象与解释:刚点燃时,氢气安静地燃烧,过一会儿,突然发生爆炸,听到“砰”的声音。

点燃前,纸筒内是纯净的氢气,遇火燃烧。

随着氢气的消耗,空气不断从纸筒底部进入筒内,筒内的气体变成氢气和空气的混合物,这种混合气体遇火发生了爆炸。

实验4:在干燥的硬质试管底部铺一层黑色的CuO,管口微向下倾斜。

通入氢气,过一会儿,再给CuO加热。

反应完全后,继续通入氢气,直到试管冷却。

现象与解释:黑色的氧化铜逐渐变为亮红色固体,同时管口有水滴生成。

氢气还原氧化铜生成了铜和水。

二、碳族元素实验1:把石墨电极或铅笔芯和导线连在一起,接通电源后,灯泡是否发亮?现象与解释:灯泡发亮,说明石墨能导电。

实验2:参考右图所示装置,制一个净水器,并完成实验。

现象与解释:混有红墨水的水变为无色,说明木炭(活性炭)具有吸附性。

实验3:把木炭加热到发红,伸进盛有氧气的集气瓶里,注意木炭在空气里和在氧气里燃烧有什么不同。

燃烧停止后,立即向瓶内倒入一些澄清的石灰水,振荡,观察现象。

汇编语言实验报告

汇编语言实验报告

实验一汇编程序的汇编及运行1.实验目的和要求1、熟悉汇编程序的汇编、连接、执行过程2、生成LST文件,查看LST文件3、生成OBJ文件,修改语法错误4、生成EXE文件5、执行2.实验环境IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。

3.实验内容及实验数据记录1、将数据段输入,取名1.txt,保存在MASM文件夹下。

生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。

试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND2、输入有错误的文件,修改错误语句。

(MASM没有出现错误即可。

不必连接、运行。

)DATA SEGMENTVAR1 DB 0, 25, ODH, 300VAR2 DB 12H, A4H, 6BHVAR3 DB ’ABCDEF’VAR4 DW 1234H, 5678HVAR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DATA BEING MOV AX, DATAMOV DS, AXLEA SI, VAR5MOV BX, OFFSET VAR2MOV [SI], 0ABHMOV AX, VAR1+2MOV [BX], [SI]MOV VAR5+4, VAR4MOV AH, 4CHINT 21HCODE ENDSEND START3、输入正确的程序,汇编、连接、运行STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATASSTART:MOV AX, DATASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START4.算法描述及实验步骤(1)编写源程序。

实验报告总结(精选8篇)完整版

实验报告总结(精选8篇)完整版

《实验报告总结》实验报告总结(一):一个长学期的电路原理,让我学到了很多东西,从最开始的什么都不懂,到此刻的略懂一二。

在学习知识上面,开始的时候完全是老师讲什么就做什么,感觉速度还是比较快的,跟理论也没什么差距。

但是之后就觉得越来越麻烦了。

从最开始的误差分析,实验报告写了很多,但是真正掌握的确不多,到最后的回转器,负阻,感觉都是理论没有很好的跟上实践,很多状况下是在实验出现象以后在去想理论。

在实验这门课中给我最大的感受就是,必须要先弄清楚原理,在做实验,这样又快又好。

在养成习惯方面,最开始的时候我做实验都是没有什么条理,想到哪里就做到哪里。

比如说测量三相电,有很多种状况,有中线,无中线,三角形接线法还是Y形接线法,在这个实验中,如果选取恰当的顺序就能够减少很多接线,做实验就应要有良好的习惯,就应在做实验之前想好这个实验要求什么,有几个步骤,就应怎样安排才最合理,其实这也映射到做事情,不管做什么事情,就应都要想想目的和过程,这样才能高效的完成。

电原实验开始的几周上课时间不是很固定,实验报告也累计了很多,第一次感觉有那么多实验报告要写,在交实验报告的前一天很多同学都通宵了的,这说明我们都没有合理的安排好自己的时间,我就应从这件事情中吸取教训,合理安排自己的时间,完成就应完成的学习任务。

这学期做的一些实验都需要严谨的态度。

在负阻的实验中,我和同组的同学连了两三次才把负阻链接好,又浪费时间,又没有效果,在这个实验中,有很多线,很容易插错,所以要个性仔细。

在最后的综合实验中,我更是受益匪浅。

完整的做出了一个红外测量角度的仪器,虽然不是个性准确。

我和我组员分工合作,各自完成自己的模块。

我负责的是单片机,和数码显示电路。

这两块都是比较简单的,但是数码显示个性需要细致,由于我自己是一个粗心的人,所以数码管我检查了很多遍,做了很多无用功。

总结:电路原理实验最后给我留下的是:严谨的学习态度。

做什么事情都要认真,争取一次性做好,人生没有太多时间去浪费。

浙江工业大学 嵌入式系统原理实验(1-8)

浙江工业大学 嵌入式系统原理实验(1-8)

嵌入式实验(1-8)第一次实验1. 用汇编语言编程实现:若R0=0,则转移到标号L0处;若R0=1,则转移到标号L1处;若R0=2,则转移到标号L2处。

否则不转移。

2. 用汇编语言编程实现128位整数减法。

3. 用汇编语言编程实现:有4个数分别存放在R0~R3中,编程实现:4数相乘,其积存放在R4中。

4. 用汇编语言编程实现:R0中的高24位[31:8]保持不变,低8位[7:0]设置为0xB。

5. 用汇编语言编程实现:快速中断的使能和禁止。

第二次实验1. 用汇编语言编程实现:将存储器中起始地址M1处的4个字数据复制到地址M2处。

2. 用汇编语言编程实现:100+101+102+…+200,其和存于R0。

3. 用汇编语言编程实现:从存储器中起始地址M1处的20个字节数据中,找出一个最小数存放在R0中。

4. 利用跳转表的思想编写一个汇编子程序,根据键入的值(存放在R0中)不同来完成不同的子程序跳转(假设有四个子程序SUB0、SUB1、SUB2、SUB3)。

第三次实验1 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,完成字符串STR1与STR2内容的互换(假设STR1和STR2长度一致)。

2. 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,将输入的20个字节数据,从大到小加以排序,大数在前,小数在后。

3. 用C语言和汇编语言混合编程实现:用汇编语言完成对C语言全局变量的访问。

假设CV AR1和CV AR2是C语言中定义的全局变量,请用一段汇编语言访问它们,完成两者的相加运算,结果存放在CV AR1中。

第四次实验1. 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,完成两个字符串的比较,并返回比较结果。

如果比较字符串相同,返回1,否则返回0。

2. 用C语言和汇编语言混合编程实现:请完成一段字符串“Hello Zhejiang University of Technology!”的拷贝,要求主程序用C语言编写,字符串拷贝子程序用汇编语言编写。

八年级物理上册实验探究题汇编

八年级物理上册实验探究题汇编

八年级物理上册实验探究题汇编1、在“测定平均速度”的实验中,如图所示:(1)物体运动的路程用________测量。

运动时间用________测量,这个实验依据的原理是v= 。

(2)小车所放的斜面应保持较________(填“大”或“小”)的坡度,这样小车在斜面上运动时间会长些,便于测量。

(3)实验中测量得的数据:斜面全长1m,通过全路程的时间为18s,通过前半程的时间为10s,那么小车运动前半程的平均速度是________cm/s,后半程的平均速度是________cm/s,整个路程平均速度是________cm/s(保留一位小数)。

2、如图是探究声音产生及其特性的小实验:(1)用手拨动塑料尺,塑料尺会发出声音,说明声音是由物体的______ 而产生.(2)若增大塑料尺振动的幅度,则声音的______ 增大.(3)改变塑料尺伸出桌边的长度,会使声音的_______ 发生改变.3、小丽等同学“探究声音的产生”的装置如图所示,将系在细线上的乒乓球靠近音叉.(1)当小丽同学用小锤敲击音叉的时候,既能听到音叉发出的声音,又能观察到________________________.通过实验现象得出的结论是.(2)乒乓球在实验中起到什么作用?__________________________.这种思维方法叫做_________________(3)若实验过程中小丽同学加大敲击音叉的变化:①听到和看到的现象会有什么样的变化?_________________________________________________________________.②根据实验现象的变化,你又可以总结出什么结论?_________________________________________________________________.4、如图甲所示,是“探究物质的熔化规律”的实验装置.实验时先将固体物质和温度计分别放入试管内,再放入大烧杯的水中,观察固体的熔化过程.(1)试管内物质在熔化过程中,某时刻温度如图乙所示,读数方法正确的是_____(选填“A”、“B”或“C”),示数为________℃,某同学根据实验记录的数据描绘出该物质的温度随时间变化的图像(如图丙ABCDE),则可知该物质是__________(选填“晶体”或“非晶体”)。

2020年中考物理八年级实验题汇编(含答案)

2020年中考物理八年级实验题汇编(含答案)

2020年中考物理八年级实验题汇编(含答案)1.(2020•枣庄)某实验小组在“测量物体运动的平均速度”实验中,让小球从斜面A点由静止开始滚下,频闪照相机记录了小球在相同时间内通过的路程,照片如图所示:(1)依据照片可判断,小球在做(选填“加速”、“减速”或“匀速”)运动;(2)如果频闪照相机每隔0.2s拍摄一次,并测得s AB=5cm,s BC=15cm,则小球在BC 段的平均速度为m/s,小球在AC段的平均速度为m/s;(3)如图所示,能说明小球在斜面上运动情况的图象是;(4)小球在AD段运动过程中,经过时间t AD中点时的速度为v1,经过路程s AD中点时的速度为v2,则v1v2(选填“>”、“<”或“=”)。

2.(2019•丹东)小明同学利用斜面、小车,刻度尺,停表测量小车沿斜面下滑时的平均速度。

(1)该实验的原理是。

(2)实验中小车从A位置运动到C位置的路程如图所示,并测得小车在这段路程内运动的时间为2s,则小车在这段时间内的平均速度为m/s。

(3)实验过程中,由于小车的运动时间较短,不便于计时,可以通过使斜面的倾斜程度变(填“陡”或“缓”)的方式,改变小车的运动时间,达到便于测量时间的目的。

(4)完成上述实验后,他在斜面底端放置了一个小木块,想继续探究小车的动能与速度的关系,他应将同一小车从斜面(填“相同”或“不同”)的高度由静止释放,可以通过观察小木块得到结论;若再探究小车的动能与质量的关系,他应将质量不同的小车从斜面(填“相同”或“不同”)的高度由静止释放,目的是。

3.(2020•淄博)图中是利用钢尺探究声现象的实验情景。

(1)将钢尺紧压在桌面上,一端伸出桌边。

拨动钢尺发出声音,说明声音是产生的。

(2)保持钢尺伸出桌面的长度不变,用大小不同的力拨动,发出声音的不同;改变钢尺伸出桌面的长度,用相同的力拨动,发出声音的不同。

(3)将钢尺伸出桌面的一端对着点燃的蜡烛,拨动钢尺发现烛焰熄灭,说明声音可以传递。

单片机实验8 P1口应用实验

单片机实验8 P1口应用实验

实验8 P1口应用实验
P1.0---P1.7八个I/O 口接八只LED 发光管
口线状态为”1”LED 亮, 试编程实现每次点
亮一只LED 并左循环连续点亮八只LED
假设P1.0在左边。

CYC:MOV A,#01H LOP:MOV P1,A
ACALL DEL Y
RL A
SJMP LOP
DELY:MOV R6,#100
MOV R7,#250 LOP1:NOP
NOP
DJNZ R7,LOP1
MOV R7,#250
DJNZ R6,LOP1 RET
2、实验步
1)打开PV32编程序。

汇编正确进入调试界面。

否则修改程序重新汇编直到通过。

2)打开P1口窗口给P1初赋值
3)单步调试观察并记禄寄存器、内存的变化。

单步根踪延时程序排除死循环。

观察流水灯是否正确,判断程序是否正确。

若发现问题重返编辑界面,修改、存盘、汇编。

返回调试界面调试通过。

单步调试时可将延时程序缩短令(R6)=1,(R7)=1,
4)设断点调试、延时程序恢复为0.5秒、记禄结果。

5)若每次点亮两个灯修改程序再做一遍
3.实验报告
1.写出程序流程图、程序清单
2.根据记渌数据给程序加注解
3.调试心得。

实验8汇编实验

实验8汇编实验

.实验八编写子程序(4学时)在本次实验中,我们将编写3个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法。

同前面的所有实验一样,这个实验室必须独立完成的,在后面的课程中,将要用到这个实验中编写的3个子程序。

1、显示字符串显示字符串是下现实工作中经常要用到的功能,应该编写一个通用的字程序来实现这个功能。

我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行、列)、内容和颜色。

该子程序描述如下:名称:show_str功能:在指定位置用指定颜色显示一个用0结束的字符串。

参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),(cl)=颜色,ds:si 指向字符串的首地址。

返回:无应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。

assume cs: codedata segmentdb ‘Welcome to masm!’, 0data endscode segmentstart: mov dh, 8mov dl, 3mov cl, 2mov ax, datamov ds, axmov si, 0call show_strmov ax, 4c00hint 21hshow_str: :::code endsend start提示:(1)子程序的入口参数是屏幕上的行号和列号,注意在子程序内部要将它们转化为显存中的地址,首先要分析一下屏幕上的行列位置和显存地址的对应关系;(2)注意保存子程序中用到的相关寄存器;(3)这个子程序的内部处理和显存的结构密切相关,但是向外提供了与显存结构无关的接口。

通过调用这个子程序,进行字符串的显示时可以不必了解显存的结果,为编程提供了方便。

在实验中,注意体会这种设计思想。

. data segmentdb "Welcome to masm!"data endsstack segmentdb "Welcome to masm!"stack endscode segmentstart:mov dh, 8mov dl, 3mov cl, 2mov ax, datamov ds, axmov si, 0mov ax,0B800hmov es,axmov ax, stackmov ss, axmov sp,10hcall show_strmov ax, 4c00hint 21hshow_str:push dxpush cxmov al,160dec dhmul dhmov bx,axadd dx,siadd dl,dladd bl,dlmov cl,[si]mov ch,0jcxz okmov es:[bx],clpop cxmov es:[bx+1],clinc sipop dxjmp short show_strok:pop cxpop dxretcode endsend start2、解决除法溢出的问题前面讲过,div指令可以做除法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验八编写子程序(4学时)在本次实验中,我们将编写3个子程序,通过它们来认识几个常见的问题和掌握解决这些问题的方法。

同前面的所有实验一样,这个实验室必须独立完成的,在后面的课程中,将要用到这个实验中编写的3个子程序。

1、显示字符串显示字符串是下现实工作中经常要用到的功能,应该编写一个通用的字程序来实现这个功能。

我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行、列)、内容和颜色。

该子程序描述如下:名称:show_str功能:在指定位置用指定颜色显示一个用0结束的字符串。

参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),(cl)=颜色,ds:si 指向字符串的首地址。

返回:无应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。

assume cs: codedata segmentdb ‘Welcome to masm!’, 0data endscode segmentstart: mov dh, 8mov dl, 3mov cl, 2mov ax, datamov ds, axmov si, 0call show_strmov ax, 4c00hint 21hshow_str: :::code endsend start提示:(1)子程序的入口参数是屏幕上的行号和列号,注意在子程序内部要将它们转化为显存中的地址,首先要分析一下屏幕上的行列位置和显存地址的对应关系;(2)注意保存子程序中用到的相关寄存器;(3)这个子程序的内部处理和显存的结构密切相关,但是向外提供了与显存结构无关的接口。

通过调用这个子程序,进行字符串的显示时可以不必了解显存的结果,为编程提供了方便。

在实验中,注意体会这种设计思想。

data segmentdb "Welcome to masm!"data endsstack segmentdb "Welcome to masm!" stack endscode segmentstart:mov dh, 8mov dl, 3mov cl, 2mov ax, datamov ds, axmov si, 0mov ax,0B800hmov es,axmov ax, stackmov ss, axmov sp,10hcall show_strmov ax, 4c00hint 21hshow_str:push dxpush cxmov al,160dec dhmul dhmov bx,axadd dx,siadd dl,dladd bl,dlmov cl,[si]mov ch,0jcxz okmov es:[bx],clpop cxmov es:[bx+1],clinc sipop dxjmp short show_str ok:pop cxpop dxretcode endsend start2、解决除法溢出的问题前面讲过,div指令可以做除法。

当进行8位除法的时候,用al存储商,ah存储余数;进行16位除法时,用ax存储商,dx存储余数。

可是,现在有一个问题,如果结果的商大于al或ax所能存储的最大值,那么将如何?比如,下面的程序段:mov bh, 1mov ax, 1000div bh进行的是8位除法,商为1000,而1000在al中放不下。

又比如,下面的程序段:mov ax, 1000Hmov dx, 1mov bx, 1div bx进行的是16位除法,商为11000H,而11000H在ax中放不下。

我们在用div指令做除法的时候,和可能发生上面的情况:结果的商过大,超出了寄存器所能存储的范围。

当CPU执行div等除法指令时,如果发生这样的情况,将引发CPU的一个内部错误,这个错误被称为:除法溢出。

我们可以通过特殊的程序来处理这个错误,但在这里我们不讨论这个错误的处理,这是后面课程中要涉及的内容。

下面我们仅仅来看一下除法发生时的一些现象,如同8.1所示。

图8.1 除法溢出时发生的现象图中展示了在Windows 2000中使用Debug执行相关程序段的结果,div指令引发了CPU的除法溢出,系统对其进行了相关的处理。

至此,我们已经清楚了问题所在;用div指令做除法的时候可能产生除法溢出。

由于有这样的问题,在进行除法运算时要注意除数和被除数的值,比如1000000/10就不能用div指令来计算。

那么怎么办呢?我们用下面的子程序divdw解决。

该子程序的描述如下:名称:divdw功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。

参数: (ax)=dword型数据的低16位;(dx)=dword型数据的高16位;(cx)=除数返回:(ax)=商的低16位;(dx)=商的高16位;(cx)=余数应用举例:计算1000000/10(F424H/0AH)mov ax, 4240Hmov dx, 000FHmov cx, 0AHcall divdw结果:(ax)=86A0H,(dx)=0001H, (cx)=0.提示:给出一个公式:X: 被除数,范围:[0,FFFFFFFF]N: 除数,范围: [0,FFFF]H: X高16位,范围: [0,FFFF]L: X低16位,范围: [0,FFFF]int(): 描述性运算符,取商,比如int(38/10)=3rem(): 描述性运算符,取余数,比如rem(38/10)=8公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N这个公式将可能产生溢出的除法运算:X/N,转变为多个不会产生溢出的除法运算。

公式中,等号右边的所有除法运算都可以用div指令来做,肯定不会导致除法溢出。

(关于这个公式的推导,有兴趣的同学可参见王爽所著《汇编语言》的附注5.代码:assume cs: codedata segmentdb "Welcome to masm!",0data endsstack segmentdb "Welcome to masm!"stack endscode segmentstart:mov ax, 4240Hmov dx, 000FHmov cx, 0AHcall divdwmov ax, 4c00hint 21hdivdw:push axmov ax,dxmov dx,0div cxmov bx,axpop axdiv cxmov cx,dxmov dx,bxretcode endsend start3、数值显示编程实现将data段中的数据以十进制的形式显示出来。

data segmentdw 123, 12666, 1, 8, 3, 38data ends这些数据在内存中都是二进制信息,标记了数值的大小。

要把它们显示到屏幕上,成为我们能够读懂的信息,需要进行信息的转化。

比如,数值12666,在机器中存储为二进制信息:00111010B(317AH),计算机可以理解它。

而要在显示器上读到可以理解的数值12666,我们看到的应该是一串字符:“12666”。

由于显卡遵循的是ASCII编码,为了让我们能在显示器上看到这串字符,它在机器中应以ASCII码的形式存储为:31H, 32H, 36H, 36H, 36H(字符“0”~“9”对应的ASCII码为30H~39H).通过上面的分析可以看到,在概念世界中,有一个抽象的数据12666,它表示了一个数值的大小。

在现实世界中它可以有多种表示形式,可以在电子机器中以高低电平(二进制)的形式存储,也可以在纸上、黑板上、屏幕上以人类的语言“12666”来书写。

现在,我们面临的问题的就是,要将同一抽象的数据从一种表示形式转化为另一种表示形式。

可见,要将数据用十进制形式显示到屏幕上,要进行两步工作:(1)将用二进制信息存储的数据转变为十进制形式的字符串;(2)显示十进制形式的字符串。

第二步我们在本次实验的第一个子程序中已经实现,在这里只要调用一下show_str即可。

我们来讨论第一步,因为将二进制信息转变为十进制形式的字符串也是经常要用到的功能,我们应该为它编写一个通用的子程序。

该子程序的描述如下:名称:dtoc功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符。

参数:(ax)=word型数据,ds:si指向字符串的首地址。

返回:无应用举例:编程实现将数据12666以十进制形式在屏幕的8行3列用绿色显示出来。

在显示时我们调用本次实验中的第一个子程序show_str。

assume cs: codedata segmentdb 10 dup (0)data endscode segmentstart: mov ax, 12666mov bx, datamov ds, bxmov si, 0call dtocmov dh, 8mov dl, 3mov cl, 2call show_str:::code endsend start提示:下面我们对这个问题进行一下简单的分析。

(1)要得到字符串“12666”,就是要得到一列表示该字符串的ASCII码:31H, 32H, 36H, 36H, 36H。

十进制数码字符对应的ASCII码=十进制数码值+30H。

要得到表示十进制数的字符串,先求十进制数每位的值。

例:对于12666,先求得每位的值:1,2,6,6,6。

再将这些数分别加上30H,便得到了表示12666的ASCII码串: 31H, 32H, 36H, 36H, 36H。

(2)那么,怎样得到每位的值呢?采用除基取余法:余数10 | 1 2 6 6 6 610 | 1 2 6 6 610 | 1 2 6 610 | 1 2 210 | 1 1可见,用基数10除12666,共除5次,记下每次的余数,就得到了每位的值。

(3)综合上面的分析,可得到处理过程如下:用12666除以10,循环5次,记下每次的余数;将每次的余数分别加上30H,便得到了表示十进制数的ASCII码串。

如下:余数+30H ASCII码串字符串10 | 1 2 6 6 6 6 36H ‘6’10 | 1 2 6 6 6 36H ‘6’10 | 1 2 6 6 36H ‘6’10 | 1 2 2 32H ‘2’10 | 1 1 31H ‘1’(4)对(3)的质疑。

在已知数据是12666的情况下,知道进行5次循环。

可在实际问题中,数据的值是多少程序员并不知道,也就是说,程序员不能事先确定循环次数。

那么,如何确定数据各位的值已经全部求出来了呢?我们可以看出,只要是除到商为0,各位的值就已经全部求出。

可以使用jcxz指令来实现相关的功能。

相关文档
最新文档