微机原理及应用实验报告_第1页
微机原理及应用实验报告_第2页
微机原理及应用实验报告_第3页
微机原理及应用实验报告_第4页
微机原理及应用实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理及其应用上机实验报告实验一程序调试实验(顺序结构程序设计)一、实验目的:1.学习及掌握汇编语言源程序的基本结构,明确程序中各段的功能和相互之间的关系。2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。3、熟悉和掌握DEBUGS用命令的使用二、实验要求:1、上机前,要认真阅读前言和课本相关章节2、上机前,画好流程图,编写好程序3、上机时,注意出现的错误,记录下出错信息,翻译之4、完成好实验报告三、实验内容:在内存TAB开始的16个单元连续存放了 015的平方值(0 225),任给一个数X(0 < X < 15),求X的平方值,并把结果存放在Y单元中。(2).分析X

2、平方的值是tab为首地址且x的值为有效地址中的值。data segment开始tab db 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225x db 8y dbdata endsstack segment para'stack'db 100 dup(0)stack endscode segmentassume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axAX清零将第一个数据读取到alSi , ax相枷结果给_si以si的数据位地址的内容给-Y almov al,xlea s

3、i,tabadd si,axmov al,simov y,almov ah,4chint 21hcode endsend start(3 ).程序调试:-回|xipsaLFblKOtlOC LF5fi:RRAF iFSfi : 0011 I Ffifl ;RR1 3 I FEA :0015IF5A 9LlR :修修 1JJ I FSrt =0fli D LF5A 泗©IF自祠3F5 SAM4 fiSHPIR B44C C021 3063 HHWH M9M) 的nnfiR 00B0uduuutddddbd dddddd AnA nAn-difES=ue iFua:0aes LFSS:0

4、01S usumzu1F5 BternirifUtrd06 08 yu i1591 49 bU R4840 IF4C啊0:6日与团LESS :的46名 1F58:0070 RURd而LJP10f)0031 dB 0 0100 na lu fin-fiH (jy-uu 。日丽AH BA9J03 而u<Riae 1 B0U1 M-RaB 咽 loa?lu<R0回 E g 四叱 mtKJmwoeRL. IWUH SI AX nLf LS I J ITRmil.AL 口 H ,4C 21CBX +S I >AiL l ux <81 nnL rRX+sr i,A(L 工HX 3

5、IpR L rax *sr kalJ-HLMISLJ0lQufl904_w netFURHR nP0OURSI 口。附0HIQ- In Eolfll51gd34.心得体会了解了顺序结构,掌握了程序的运行,调试。实验二分支程序设计一、实验目的:熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法;掌握条件转移、无条件转移指令的使用方法。掌握分支程序设计、编写、调试和运行的方法。二、实验要求:1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序。2、认真调试程序,对程序可能存在的所有分支都要进行运行,只有这样才能证明程序 的正确性。、实验内容1 .判断X单元数据的奇偶性,若为奇数

6、,将 Y单元设置为0FFH,若为偶数,将 Y单元 清0。jz nextlmov y,0ffhjmp nextnext1:mov y,0next:mov ah,4chint 21hcode endsend start(3) .程序调试0、C:VIin)0ISsy£teB32CoBBand. cob(Prtjgram teifiinatcd Fd£f58;001 FSB二酿的 1F5B:0010 1FSB:0R2O 1F58 1F5B:U04» 1F5G.00501FSB:0060 1F5 8 : 007069 00 FFB0 58 IF RB FF ER 3E E9

7、 99SG El E3DD E2 75 02 75 48 C6 06 E?nornally00 00 00BE D6 Al 目5 C6目6 60 74 02 09 S£ El 21 80 CF 89 3E E6 号号00 E800 03-00 00 OB-83B4 02-B0 £8 CS-B0 04 8B-3E 99 FF-08 99 OB-AQ00 00 0b 0。 E0 QI 7d 07 R4 4G CD 21 3;F 2由 26 EG S£ El E2 F7 22 9由 06 74 E6 99 C6 Qf. E8 29 E£ 7400 00 00

8、C£ 06 02B4 07 RR 99 72 EE 86 El E8 05 F6 C7 E8 99 FF 加 3G HL(4) .心得体会掌握了 add指令的用法,熟悉了分支结构。2.设计一个比较两个 8位无符号数的大小、并把较小的数存人MIN单元的程序。假设这两个数分别存放在FIRST和SECON单元中。(2) .分析将first 值赋给al ,判断al与second的大小,将小的值给 min。data segmentfirst db 32hsecond db 56hmin dbdata endscode segmentassume cs:code,ds:datastart:mov

9、 ax,datamov ds,axmov al,firstcmp al,secondjc nextmov bl,secondmov min,bljmp next1next:mov min,alint 21hcode endsend start(3) .程序调试±F5 9=000a 1FS9:HRRS I F59 - R0FKI 1F59 IFbtf1F59;001O1F5 9=0013 lFS:0ftL7I F,:加 1R 1F59 lFbV:UtJlF r«BQ&01F 8ED0 ARARAQ $a5R6i。阶i 7202 百姬 020200 8A1EB1B0 A

10、R IfU2MH B44C CD21u-uup PUUUUTP 口 oGMBnooG亦NH HMMCJJMMMhICRKr1F58DG3*al_ rmnm al, rcmcM i BBLSEHHH21JLBLP 0001J rmnzKBLAH,4G21uvrt pih lyyyj-vuirij-ytalw te -TifSR=AH 1F58 LFbH:UU<W 1F58 £0020 1 FSB=0030 1 F50 二 MH0 1F5BsSBEB 1F5 8 -00160 :LF&H:也,也rm Ledl hur'licu 1 ly0 -121F6 8 0n00

11、EGEE0HE4G 阶Esl 01D17sH30En8?l9y 08-U00-2B96FU9N石8尊 51H9E74E 602912565&gEEF7 42 82EGD2& 3BH3DD0C0U04O499 0OUBR0;0300 wa-jn 00 IE 02-B0 CO RflRR-3F FF-Ofe WO-lflG002c874fi4 0V4EF707 0M462f16N00U2P0CJE 目JLgAlA9¥ 6 M-02E992 wsl3n2Et0K 12 16 9 c0 E27EF9 3(4) .心得体会掌握了 cmp指令的用法,加深了对分支结构的了解。实验三

12、循环程序设计一、实验目的掌握循环指令的使用方法;掌握实现单重、多重循环程序设计、编写、调试和运行的方法。二、实验要求:1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序2、在调试程序的过程中,对出现的错误应记录它的英文提示,进行翻译,把更正的指令用其它颜色的笔记录的原程序清单的右边,便于比较。三、实验内容:1、从自然数1开始累加,直到累加和大于1000为止,普计被累加的自审数的个数,并把统计的个数送入 n单元,将累加和送入 sum单元。开始IJdata segmentn dwsum dwdata endscode segmentBX+1AX,BX清零AX+bx 赋给 axass

13、ume cs:code,ds:datastart:mov ax,datamov ds,axmov ax,0mov bx,0next: inc bxadd ax,bxcmp ax,1000jb nextmov n,bx mov ax,summov ah,4chint 21hcode endsend start2) 内存地址BUFFE所始存放着10个带符号字节数组,编写程序求数组中正数、零和 负数的个数,并分别将它们存于PLUS开始的单元。3) ).分析将寄存器al , bx初始化,取buffer首地址给si ,设置循环次数给 cx,判断si的值 正负还是零,将正数个数值送给 al ,负数个数值送

14、给bh,零的个数给bl ,再将三个值存放在以 plus 为首地址的地址中。data segmentbuffer db 10h,78h,23h,00h,56h,46h,86h,0efh,0bch,65hcnt equ $-bufferplus db 3data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov bx,0mov al,0lea si,buffermov cx,cntlop1:test si,80hjz zeroinc bhjmp nextzero:cmp byte ptrsi,0jz next2i

15、nc aljmp nextnext2:inc blnext:inc siloop lop1lea di,plusmov di,alinc dimov di,blinc dimov di,bhmov ah,4chint 21hcode endsend start4) ). 程序调试跖8:0的0FSB二酶如F5 8 FSB:鲍锢F5«:0050F5S :0070080E8D261B0F 8D0G8870D2567SFG1E703F 同 B?W8? 21&E474F0E028199 08888 289680E D 0 E0 5D0F3a306046C49980044099EF-BC

16、 65 M 01OO-BO 00 BE 36FE-C7 Efl f»B 8RE2-E8 8D 3E 0ACD-21 S£ El E2B0-3E 22 9内 06FF-0& E6 9号 C6R0-AG E8 29 E2京 C:VIffD0ISsysteB32Cnuand.Geminated nornally Hdlf58:005) ).心得体会学习了循环结构,了解了循环指令的用法。3、内存中有一串以“ $”结尾的字符串,统计其中“ A”出现的次数。6) .分析初始化寄存器,取字符串首地址,首先判断si内容是否为$ ',若是则结束程序,否则再判断si是否为

17、9;A 若是则bl加1记录'A'的个数,否则判断下一个字符。data segmentstring db 'jAnsAhAenA$'cnt equ $-stringjin dbdata endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov bl,0lea si,stringmov cx,cntnext2:mov al,sicmp al,'$'jz next3cmp al,'A'开始初始化bl ,取string 首地JZ nextjmp nextlnex

18、t:inc blnext1:inc siloop next2next3:mov jin,blmov ah,4chint 21hcode endsend start7) .程序调试c ' C; TINP0YS5T3tea32CQuand, coarogram term mated ncrntal lij Lllf 5 8:001F5B:0S50F5B:0g601F5B;0B706E1F7403班7540E? 1-84B1256 4520EE70 A8CEGD26 6E3173 41 68 6E 1>3 E3HE 3C 41E4 4C CDgs El21 80 CF89 3E E64

19、1 G5-6E 41 24 04 00 8D-38 00 00 H974 R2-EB H2 FE C3 21 02-B0 3F 2Ai 2f> ES C6-0Q El E204 O03E 22 ?A 00 a9 FF-06 E8 99 C6, L. t . . ?"&- , t il ? L 8) .心得体会加深了对循环结构的了解,强化了对循环指令的运用。实验四字符串的输入和输出一、实验目的:掌握字符串输入和输出的方法,掌握基本的I/O功能调用,学习对内存变量进行处理的 方法。二、实验要求:1、分析题意,写出算法,画出流程图,再编程2、认真调试程序,对程序可能存在的所有

20、情况都要进行运行,只有这样才能证明程序 的正确性。三、实验内容:1、在内存单元中存放了两个字符串STRINGl和STRING2(设其长度相同),试编写一程序,比较它们所含的字符是否相同。若相同,则显示'Match'否则,显示'No match'。2).分析取stringl 和string2 的首地址给si和di ,设置循环次数给 cx,比较si和di内容是否相同,若全部相同则显示器输出mantch,若不相同,则输出 no mantch.data segmentstringl db 'jinsheng'cnt equ $-string1string

21、2 db 'jinshenr'buff1 db 'match$'buff2 db 'no match$ data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea si,string1lea di,string2mov cx,cntnext: mov al,simov bl,dicmp al,bljz next1lea dx,buff2mov ah,9int 21hjmp next2next1:inc siinc di取 string1 和 string2结束loop

22、nextlea dx,buff1mov ah,9int 21hnext2:mov ah,4chint 21hcode endsend start3).程序调试4) .心得体会了解了字符串比较的指令和字符串输出的指令。实验五程序设计综合应用一、实验目的:通过本实验,深入掌握汇编语言程序设计的方法与技巧。二.实验内容:2、内存单元MEMF始存放了一个长度为10的无符号字节数组,编写程序找出其中的最大值和最小值并存于MAXF口 MIN单元。5) .分析取men的手首址给si ,将首址中的数值给 al、bl ,再将其他数值逐个与 al、bl比较,最小值给bl ,最大值给al。data segmentm

23、em db 23h,45h,98h,24h,03h,15h,16h,65h,48h,35h开始min dbmax dbdata endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea si,memmov al,simov bl,almov cx,9next:inc sicmp si,aljnc dacmp si,blSI+1CX=0最小值给bl最大值给alBL给 min、al 给 maxjc xiao jmp again da:mov al,si jmp again xiao:mov bl,si again:dec

24、 cx jnz next mov max,al mov min,blint 21h code endsend start6) .程序调试UH00OEECF0 092116900DECQ0E3 0C4-C74t 40DR-4F707 3AA42062088BE0CE5ArDG26oAL.rST1 BL. AL CX _ RiVI? ST St 附刖R rsr i rni« HOI F 附例21 AL. rsi 1 0SZ1 BL. SI O0GE0E&C 4ell830 四502000P0607BCOFO6GC0O4-99 1310E0991RA RdHOU1FK,二卬口悯RR

25、AD8MOUR9A9A0MOU146THG1F59=R011GUPK琳6.TNR1 F5 9=FIR153R1CCUPiF5 9;RCT177KA6JRFR66.IMP1RA RdhOU1 F5 9;RR1DFBR2JHP1F59:001F8A1CMOUii ur'iva.llurruyrciiii LehiiJUiaLy tl dlfSO>00ir5B:0000 ir5o=00i0 tr5Os0020 1F5B:0030 1F50=0040 1F5030050 1F5B:00G0 1F5O=00?05D8A1F68 1O30ECEE3OG2G0E0 0DBAIU6304E3C9-19? 2O7ES2B97) .心得体会深入掌握汇编语言程序设计的方法与技巧,加深了对循环指令的用法。3.将字符串转换成大写字母字符串。设字符串的首地址为STRING字符串的长度在LENGTHS 元内。数据段可定义如下:DATA SEGMENTSTRING DB 'I am a student!'LENGTH DB 15DATA ENDS程序在循环体内逐个取出字符,判断是否在小写字母a和z'之间,若在就

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论