收藏 分销(赏)

华南理工大学微机与接口实验报告四实验题目原理流程图代码截图样本.doc

上传人:二*** 文档编号:4509818 上传时间:2024-09-26 格式:DOC 页数:59 大小:736.50KB
下载 相关 举报
华南理工大学微机与接口实验报告四实验题目原理流程图代码截图样本.doc_第1页
第1页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、微机原理实验报告班 级:级电子科学与技术卓工班姓 名: 黄中一 学 号: 36460273 序 号: 评阅分数: 实验一 一、实验目1、学会如何建立汇编源文献ASM2、学会调用MASM宏汇编程序对源文献进行汇编,获得目的程序 OBJ及LST列表文献3、学会调用LINK连接程序汇编后目的文献OBJ连接成可执行文献 EXE4、学会使用DEBUG调试程序把可执行文献装入内存并调试运营,用D命令显示目的程序,用U命令对可执行文献反汇编,用G命令运营调试。二、实验设备 装有MASM 软件IBM PC机 三、实验内容 1、汇编程序对源程序进行编译,生成扩展名为OBJ目的文献;连接程序是将目的程序和库文献进

2、行连接、定位,生成扩展名为EXE可执行文献;调试程序是对目的文献进行调试,验证它对的性。 2、DEBUG程序各种命令用法 功能命令格式使用阐明显示内存单元内容D地址从指定地址开始显示40H个字节或80H个字节修改内存单元内容E地址先显示地址和单元内容等待输入修改内容检查和修改寄存器内容R显示所有寄存器和标志位及下条指令单元十六进制数码和反汇编格式反汇编U地址从指定地址开始反汇编16个或32个字节汇编A地址从指定地址直接输入语句并从指定指定汇编装入内存跟踪T地址从指定地址开始逐条跟踪指令运营G地址无断点,执行正在调试指令退出Q退出DEBUG返回DOS3、实验过程、在edit环境,写字板,记事本等

3、中输入源程序。或双击屏幕上“将来汇编”快捷方式进入编辑环境输入源程序。、保存,输入文献名如A1.asm,并将其与MASM三个可执行文献放在同一目录下。、在DOS环境下(可用windows下命令提示符进入),用MASM生成目的文献A1.OBJ进入DOS环境,将当前目录设立为存储MASM途径.如图所示:如果MASM 软件放在C:TOOLSWJYL 则先要进入到该子目录下,进入该子目录办法为,cd c: 退到c盘根目录下,cd tools cd WJYL则如上所述进入该目录下,然后 输入MASM ,可见屏幕上有四个提问,按如下格式回答: Source filename .ASM:a1 Object

4、filename A1.OBJ: Source listing NUL.LST:a1 Cross-reference NUL.CRF:a1 、键入DIR/W可见目的文献A1.OBJ和列表文献A1.LST。、在DOS环境下,用连接文献LINK连接程序生成可执行文献A1.EXE输入LINK,可见屏幕有四个提问,按如下格式回答: Object Modules .OBJ:A1 RUN File A1.EXE: List File NUL.MAP:Libraries .LIB:A1用DIR命令,查看生成各文献、用TYPE A1.LST 命令观看列表文献、在DOS环境下,用DEBUG跟踪程序来安装运营A1

5、.EXE 程序1) 输入DEBUG A1.EXE可见有提示符“”2)输入R 可见CPU内所有寄存器内容和标志位状态如下:AX=0000 BX=0000 CX=0100 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000 DS=1112 ES=1112 SS=1126 CS=1129 IP=0000 NV UP DI PL NZ NA PO NC 1129:0000 B82211 MOV AX,11223)输入U,可看到11行指令,再用U命令可看到余下各指令。4)输入运营命令G00 28 可见程序执行到 INT 21H 句便停下来,屏幕展示此刻各寄存器内容如下: AX

6、=4C00 BX=0007 CX=0001 DX=0000 SP=0028 BP=0000 SI=0000 DI=0000 DS=1122 ES=1112 SS=1126 CS=1129 IP=0028 NV UP DI PL ZR AC PE CY1129:0028 CD21 INT 215)输入R IP 可修改指令指针6)输入T可看到执行第一条指令成果输入T0 3 可看到3条指令执行过程7)输入Q 退出DEBUG,回到DOS状态。注:如果masm过程中浮现错误,可参看错误提示,在相应行和列去寻找错误。可直接在dos 环境下键入edit进入编辑环境。附:标志寄存器相应含义NV OF=0OV

7、OF=1UP DF=0DN DF=1DI IF=0EI IF=1PL SF=0NG SF=1NZ ZF=0ZR ZF=1NA AF=0AC AF=1P0 PF=0PE PF=1NC CF=0CY CF=1实验例程1:DATA SEGMENTARRAY1 DB 2,5,0,3,-4,5,0,0AH,0FHARRAY2 DB 3,5,4,-2,0,8,3,-0AH,20HCOUNT DB $-ARRAY2LEN DB ?SUM DB 20H DUP(0)DATA ENDSSTACK1 SEGMENT PARA STACK STACK DW 20H DUP(0)STACK1 ENDSCODE SEG

8、MENT ASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATA MOV DS,AXMOV BX,-1MOV CX,0MOV CL,COUNT NOZERO:INC BX MOV AL,ARRAY1BX ADD AL,ARRAY2BX MOV SUM BX,AL LOOPNE NOZERO JE ENDOINC BLENDO: MOV LEN,BL MOV AH,4CH INT 21HCODE ENDS END START 实验例程2:显示字符串;SAMPLE PROGRAM DISPLAY MESSAGE ;注释行 STACK SEGMENT PA

9、RA STACK STACK ;定义堆栈段 DB 1024 DUP (0) ;在存储器某个区域建立一种堆栈区 STACK ENDS DATA SEGMENT ;定义数据段 MESSAGE DB THIS IS A SAMPLE PROGRAM. $ ;在存储器中存储供显示数据DATA ENDS ;数据段结束CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATA,SS:STACK ;告诉汇编程序段范畴 START: PROC FAR ;将程序定义为远过程 PUSH DS MOV AX,0 ;可用XOR AX,AX PUSH AX ;原则序,以便返回DOS操作系统MO

10、V AX,DATA MOV DS,AX ;初始化DS LEA DX,MESSAGE ;MESSAGE 地址偏移量给BX MOV AH,9 INT 21H ;调用 DOS 9号中断功能显示字符串。 RET ;返回DOS 操作系统START ENDP ;过程结束CODE ENDS ;代码段结束 END START ;整个程序汇编结束例3 人机交互:DATA SEGMENTBUF DB 100 ;缓冲区长度 DB ? ;预留用来存储实际长度 DB 100 DUP(?) ;接受来自键盘输入下信息MESG DB WHAT IS YOUR NAME ?$DATA ENDSCODE SEGMENT ASSU

11、ME DS:DATA,CS:CODESTART: MOV AX,DATA MOV DS,AX MOV DX OFFSET MESG MOV AH,09H ;屏幕显示提示信息 INT 21H MOV DX OFFSET BUF MOV AH,0AH ;接受键盘输入 INT 21H MOV AH,4CH INT 21HCODE ENDS END START实验二 数码转码编程及程序调试一.实验目1掌握不同进程数及编码互相转换程序设计办法,加深对数码转换理解;2 进一步熟悉键盘用法;3. 进一步熟悉调试程序办法。二. 实验设备装有汇编软件IBMPC 机一台三.实验内容及环节 计算机输入设备输入信息普

12、通ASCii码或BCD码表达数据或字符,CPU解决信息普通均用二进制数进行计算或其他解决,解决成果输出外设有必要一外设规定变为ASCII码,BCD码或七段显示码等。因而,在应用软件中各累数制转换和代码转换是必不可少。计算机于外设间数码转换关系如图21所示,数码相应关系如表21所示。一将ASCII码表达十进制数转换为二进制数1.程序流程 十进制数可表达为: 代表十进制1,2,3,9,0;由式(2)可归纳十进制数转换为二进制数办法:从十进制最高位Dn开始作乘10加次位操作,将成果再乘10再加下一种次位,如此重复,则可求出二进制数成果来。程序流程图如图22。这里咱们规定:被转换ASCII码十进制数存

13、储在3500h3504h单位中。而转换成果在35103511单位中。2.实验环节(1) 输入程序并检查无误。(2) 在35003504h单元存入十进制12ASCII码,即e3500,并输入。(3) g,运营程序,并用CTR+C来中断程序返回监控态。(4) 用d3510查当作果,应为3510 0C 00(5) 重复试几组数,考查程序对的性。流程图如下:代码如下:地址(H) 助记符 注释 MOV SI,3500 ;源地址 MOV DI,3510 ;成果地址 MOV BX,000A ;乘数 10 MOV CX,0004 ;计数200C MOV AH,00 ;AH 清零200E MOV AL,SI ;

14、取被转换数 SUB AL,30 ;ASCII码变十进制数 IMUL BX ;高位(AX)*(BX)送AX ADD AL,SI+01 ;取下一位1017 SUB AL,30 ;ASCII码减30变十进制数 INC SI ;源地址指针+1201A LOOP ;CX-1,若CX不等于零则继续201C MOV DI,AX ;若CX不等于零则存成果201E INT 3 运营成果截图:二.将十进制数ASCII码转换为BCD码1.程序流程将从键盘输入五位十进制数ASCII码已存在3500起始内存单元中。把它转换成BCD码后,再按位分别存入350A起始内存单元内。若输入不是十进制ASCII码,则显示FF.2.

15、实验环节(1) 输入程序并检查无误。(2) 在3500H3504H单元中存入五位十进制数ASCII码,即E3500,并输入31,32,33,34,35。(3) G=,运营以上程序。(4) D350A,显示成果为:0000:350A 01 02 03 04 05 CC(5) 重复试几组数,考查程序对的性。流程图如下:代码如下:地址(H) 助记符 注释 MOV CX,0005;循环计数器赋初值 MOV DI,3500;ASCII码首址 MOV BL,FF; 错误标志送BL MOV AL,DI;送ASCII码至AL200A CMP AL,3A; 比较AL与3AH200C JNB ; 不低于3A则转2

16、00E SUB AL,30; 低于3A则取ASCII码低四位 JB ; 低于30则转 MOV BL,AL; 否则AL内容送BL,取代FF MOV AL,BL; 成果或错误标志送AL MOV DI+0A,AL INC DI201A LOOP 201C INT 3运营成果截图:三. 将十六位二进制数转换为ASCII码表达十进制数1. 程序及其流程十六位二进制数值域为065535,最大可转换为五位十进制数。算法:五位十进制数可表达为:(Di:表达十进制数09。) 因而,将十六位二进制数转换为五位ASCII码表达表达十进制数,就是求D1D4,并将它化为ASCII码。程序流程图如图1-3所示,设源数据存

17、于35003501H单元中,成果数存于35103514H单元中。2.实验环节(1) 输入程序并检查无误。(2) 在35003501H单元中存储0C00,运营程序并检查成果,应看到35103514H单元中数依次为。(3) 重复试几组数,并运营程序、观测成果。流程图如下:代码如下:地址(H) 助记符 注释 MOV DX,3500;取二进制数 MOV SI,3515; 目的首址在3510 DEC SI MOV AX,DX200A MOV DX,0000200D MOV CX,000A DIV CX; ; 除10 XCHG AX,DX ADD AL,30 MOV SI,AL CMP DX,000020

18、1B JNE 201D CMP SI,3510 ;填余下高位为02021 JZ 202A; 2023 DEC SI2024 MOV AL,302026 MOV SI,AL2028 JMP 201D202A INT 3运营成果截图:四.十六进制数转换为ASCII码1.程序及其流程通过CPU解决后十六进制数存储在起始地址为3500H内存单元中,把它们转换成ASCII码之后,再分别存入起始地址为350AH内存单元中。 从表2-1中可知,十六进制数加30H即可得到0H9HASCII码,而要得到AHFHASCII码,则需再加7H。程序流程图及参照程序如图1-4所示。2.实验环节(1) 输入程序并检查无误

19、。(2) 在35003501H单元中存入四位十六进制数203B,即E3500,并输入3B,20。(3) G=,运营以上程序(4) D350A,显示成果为:0000:350A 42 33 30 32 CC输入数据与成果ASCII码相应顺序相反。(5) 重复试几组数。考查程序对的性。流程图如下:代码如下:地址(H) 助记符 注释 MOV CX,0004 MOV DI,3500 MOV DX,DI MOV AX,DX200A AND AX,000F ;取低四位值200D CMP AL,0A; ;判与否“0”-“9”200F JB ; 是“0”-“9”转 ADD AL,07; 是“A”-“F”,加7

20、ADD AL,30; 转换为ASCII码 MOV DI+0A,AL INC DI PUSH CX ;保护循环计数器内容201A MOV CL,04; 移位次数送CL201C SHR DX,CL201E POP CX201F LOOP 2021 INT 3运营成果截图:五.BCD码转换为二进制数 1.程序及其流程设四个二位十进制数BCD码存储在起始地址为3500H,单元中,转换出二进制数码存入起始地址为3510H内存单元中,程序流程图及参照程序如图1-5所示。2.实验环节(1) 输入程序并检查无误。(2) 在35003507单元中存入四个十进制数(12,34,56,78)BCD码,即E3500

21、输入01,02,03,04,05,06,07,08。(3) G=,运营以上程序。(4) D3510,显示成果为3510 0C 00 22 00 38 00 4E 00(5) 重复试几组数,考查程序对的性。流程图如下:代码如下:地址(H) 助记符 注释 MOV CX,0004 MOV DI,3500 MOV AL,DI ADD AL,AL ;乘2200A MOV BL,AL200C ADD AL,AL ;乘2200E ADD AL,AL ;乘2 ADD AL,BL ;乘10 INC DI MOV AH,00 ADD AL,DI; BCD码十位与个位加 MOV DI+0F,AX;存成果 图1-52

22、01A INC DI201B LOOP 201D INT 3运营成果截图:实验三 分支和循环程序设计实验一、分支程序设计实验1.实验目1.掌握分支程序构造。2掌握分支程序设计、调试办法。2.实验设备微机一台3.内容设计一数据块间搬移程序设计思想:程序规定把内存中一数据区(称为源数据块)传送到另一存贮区(称为目数据块)。源数据块和目数据块在存贮中也许有三种状况。对于两个数据块分离状况,数据传送从数据块首址开始,或者从数据块末址开始均可,但对于有某些重叠状况,则要加以分析,否则重叠某些会因“搬移”而遭破坏。可以得出如下结论:当源数据块首址目块首址时,从数据块首址开始传送数据。当源数据块首址目块首址

23、时,从数据块末地址开始传送数据。流程图如下:代码如下:DATA SEGMENTM DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,10H,11H,12H,13H,14H,15H,16H,24 DUP(?)N = M+10Z = N+17CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV BX,OFFSET ZSECOND:MOV AX,OFFSET M MOV DX,OFFSET N ADD AX,15 CMP AX,BX JC FIRST MOV CX,0016 ADD DX,15

24、MOV SI,AX MOV DI,DXBEGIN2:MOV BL,SI MOV DI,BL DEC SI DEC DI LOOP BEGIN2 JMP COMPLETEFIRST:MOV CX,0016 SUB AX,15 MOV SI,AX MOV DI,BXBEGIN1:MOV DL,SI MOV DI,DL INC SI INC DI LOOP BEGIN1 MOV BX,0000 JMP SECONDCOMPLETE:MOV AH,4CH INT 21HCODE ENDSEND START运营成果截图:在源数据块中存入6个数,分别使SI不不大于、等于、不大于DI均发现数据对的传送。程序

25、对的。二、循环程序设计实验1.实验目(1)加深对循环构造理解。(2)掌握循环构造程序设计办法。(3)纯熟掌握调试循环程序办法。2.实验设备TDS-MD微机一台3.内容(1)编制程序使S=1+2*3+3*4+4*5+N(N+1),直到N(N+1)项不不大于200为止。流程图如下: NY开始1DX,2BLBLALBL+1AL*BLAXDX+AXDX结束AX200 代码如下:STACK1 SEGMENT STACKDW 64 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART:MOV DX,0001HMOV BL,02HA1:MOV AL,BLINC B

26、LMUL BL ADD DX,AXCMP AX,00C8HJNA A1A2:INT 03HCODE ENDSEND START 运营成果截图:运营成果为45FH,与实际相符,程序对的。(2)求某个数据区内负数个数设数据区第一单元存储区内数据个数,从第二单元开始存储数据,在区内最后一种单元存储成果。为记录数据区内负数个数,需要逐个判断区内每一种数据,然后将所有数据中凡是符号位为1数据个数累加起来,即得区内所包括负数个数。 流程图如下: 代码如下:STACK1 SEGMENT STACKDW 64 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART:M

27、OV DI,3000H MOV CL,DI XOR CH,CH MOV BL,CH INC DI A1: MOV AL,DITEST AL,80H JE A2INC BL A2: INC DILOOP A1MOV DI,BL A3: JMP A3CODE ENDSEND START运营成果截图:输入数据个数为6输入12、88、82、90、22、33得成果03成果与实际相符,程序对的。实验四子程序设计一. 实验目、学习子程序定义和调用办法。、掌握子程序、子程序嵌套构造。、掌握子程序程序设计、编制及调试办法。二. 实验内容程序采用菜单式选取,可接受顾客输入命令(15),各命令如下:按1键完毕字符串

28、小写字母变大写字母顾客输入一由英文大小写字母或数字09构成字符串(以回车结束),程序逐个检查字符串中各字符,将原串中小写字母变成大写字母,其他字符不变,并在屏幕上显示。顾客按任一键,重做,按ESC键,返回主菜单。按2键完毕找最大值(二选一)、接受顾客输入可显示字符串(以回车结束),程序将其中ASCII码值最大字符显示出来。、接受顾客输入若干无符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大数显示出来。顾客按任一键,重做,按ESC键,返回主菜单。按3键完毕排序(二选一)、接受顾客输入可显示字符串,以回车结束。程序按ASCII码值大小由大到小排序并输出显示。、接受顾客输入若干个有符号

29、8位数(以空格逗号为分隔符,以回车结束)。程序将其中最大数显示出来。顾客按任一键,重做,按ESC键,返回主菜单。按4键显示时间一方面提示顾客对时,即顾客输入时,分,秒(以空格或冒号分隔,以回车结束),然后,在屏幕上不断显示时间,格式为:(时):(分):(秒),最佳定点显示。顾客按任一键,重新对时,按ESC键,返回主菜单。按5键,结束程序运营,返回系统提示符。流程图如下:主程序流程 子程序一流程子程序二流程子程序三流程 子程序四流程代码如下:DATA SEGMENT ORG 9999HMENU DB 0DH,0AH,Programed by Xue Chengdai Class four Gra

30、de 11,0DH,0AH, ;菜单 DB Please input 15 to choose service,0DH,0AH, DB 1: Input an string.Then convert the small letter to big letter. ,0DH,0AH, DB 2: Find the character whose ASCII code is biggest,0DH,0AH, DB 3: Sort the character by ASCII code by decreasing order. ,0DH,0AH, DB 4: Display the ticking

31、time,0DH,0AH, DB 5: End the program$MEG0 DB Please choose function$ ;提示信息MEG0MEG8MEG1 DB You have choose the function 1.,0DH,0AH,Please input the character string you want to convert:$MEG2 DB You have choose the function 2.,0DH,0AH,Please input the character string:$MEG3 DB You have choose the funct

32、ion 3.,0DH,0AH,Please input the character string you want to sort$MEG4 DB You have choose the function 4.,0DH,0AH,Please input the time you want to set in format like:xx:xx:xx$MEG5 DB The program is end$MEG6 DB Sorry.you have chosen a undefined function .Please input a correct function number$MEG7 D

33、B Fail to set time$MEG8 DB Press any key to do again or press the ESC key to return to the main menu$ FLAG DB -1 ;冒泡排序中使用标志DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAstart:MAIN PROC NEAR ;主程序 MOV AX,DATA MOV DS,AXCIN:LEA DX,MENU ;输出提示信息 MOV AH,09H INT 21H CALL ENT ;输出回车换行 LEA DX,MEG0 MOV AH,09H INT

34、 21H CALL ENT MOV AH,01H INT 21H CMP AL,30H ;判断功能号 JLE EOR CMP AL,31H JE F1 CMP AL,32H JE F2 CMP AL,33H JE F3 CMP AL,34H JE F4 CMP AL,35H JE F5EOR:CALL ENTLEA DX,MEG6 ;输出出错信息 MOV AH,09H INT 21H JMP CINF1: CALL ENT ;功能1 LEA DX,MEG1 MOV AH,09H INT 21H CALL ENT CALL FUN1 ;调用子程序1 MOV AH,01H INT 21H CMP

35、AL,1BH JNE F1 JMP CINF2: CALL ENT ;功能2 LEA DX,MEG2 MOV AH,09H INT 21H CALL ENT CALL FUN2 ;调用子程序2 MOV AH,01H INT 21H CMP AL,1BH JNE F2 JMP CINF3: CALL ENT ;功能3 LEA DX,MEG3 MOV AH,09H INT 21H CALL ENT CALL FUN3 ;调用子程序3 MOV AH,01H INT 21H CMP AL,1BH JNE F3 JMP CINF4: CALL ENT ;功能4 LEA DX,MEG4 MOV AH,09H INT 21H CALL ENT CALL FUN4 ;调用子程序4 MOV AH,01H INT 21H CMP AL,1BH JNE F4 JMP CINF5: MOV AH,4CH ;功能5,终结程序 INT 21HFUN1 PROC NEAR

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服