您现在的位置:首页 >> 四川大学微机原理 >> 四川大学微机原理实验报告,四川大学考研微机原理,东南大学微机实验报告,南昌大学微机实验报告

四川大学微机原理实验报告,四川大学考研微机原理,东南大学微机实验报告,南昌大学微机实验报告

时间:2012-09-17 来源: 泥巴往事网

四川大学计算机学院、软件学院实13 周验报告学号: _XXXX_ 姓名: _XXX_ 专业: _计算机科学与技术_ 班级: _2010 级XX 班_ 第课程名称16/32 位微机原理、 汇编语言及接口...

微机原理实验报告 学 院: 专业班级:

姓 学 名 号 实验一 汇编语言编程基础 1.3 汇编语言程序上机操作和调试训练 一.功能说明 运用 8086 汇编语言,编辑多字节非压缩型 BCD 数除法的简单程序,文件名 取为*.ASM。

运用 MASM﹒EXE 文件进行汇编,修改程序中的各种语法错误,直至正确,形 成*.OBJ 文件。

运用 LINK.EXE 文件进行连接,形成*.EXE 文件。

仔细阅读和体会 DEBUG 调试方法,掌握各种命令的使用方法。

运用 DEBUG。EXE 文件进行调试,使用单步执行命令—T 两次,观察寄存器 中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。

再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用 DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。

二.程序流程图 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 三.程序代码 修改后的程序代码如下:

DATA SEGMENT A DB 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练 地对汇编语言进行编译,汇编及连接,同时也学会了用 DEBUG 调试程序,收获很 大。

在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开 MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是 64 位 的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用 DOSBOX 这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难 题后,我开始着手改正试验 1.3 中的语法错误和逻辑错误,但是无论我怎么修改 却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经 验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然 通过了编译,并且之后的连接也进行的很顺利。在用 DEBUG 调试时发现得出的结 果也很正确。

尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明 显感觉到了汇编语言和 C 语言等高级语言所不同的地方。越是底层,基础的东西 就越不人性化, 用 C 语言一行代码就能实验的功能在汇编语言中可能要花上数十 行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌 握。 实验二 一.功能说明 设计汇编语言程序 练习 1. 实验题目:编程计算下列表达式:A=90,B=-70,C=5,Y 均为有符号数,计算 Y=2 ×(A+B)+(A×C)÷5 要编写一些稍微复杂的程序, 我们会遇到一段程序被反复执行, 这样, 我们会用到 LOOP 指令。使用该指令时,需在 CX 中装入循环次数。

练习 2.码转换程序设计 编制程序,把十进制数 15786 转化成二进制数。

提示:15786=1×10×10×10×10+5×10?+7×10?+8×10+6,循环 CX=5 练习 3.编制程序,从键盘输入最多 5 个数,求他们的和,存入 SUM。

练习 4.用“冒泡“法对一组数 300,250,280,240,260,按从小到大的顺序排列。

提示:用冒泡的方法对一组数据元素排序,它的基本方法是:将相邻的两个元素通过比较进 行排序,通过多次,多遍的邻元素排序,实现整个一组数的排序。

对于 5(N)个元素,整个排序通过 4 遍(=N-1)邻元素排序完成。每一遍的排序由若干次 邻元素的排序组成。

4 遍排序中,邻元素的排序依次为 4,3,2,1 遍。完成第一遍排序后,最大数沉底,已经 到达它应占据的位置,不需要参加下一遍的排序。

外循环的次数为 CX=4 次(N-1),内循环的次数为 4,3,2,1(DEC CX) 排序遍数 1 2 3 4 本遍排序前 第一次排序 后 240,260 260,300 280,300 280,300 第二次排序 后 240,260 260,300 280,300 第三次排序 后 300,260 280,300 第四次排序 后 260,300 300,250,280, 250,300,280, 250,280,300, 250,280,240, 250,280,240, 240,260 260 ,300 280,300 280,300 250,280,240, 250,280,240, 250,240,280, 250,240,260, 250,240,260 , 250,240,260, 240,250,260, 240,250 ,260, 240,250,260, 实验要求:

1. 编制程序,从键盘输入 300,250,280,240,260 这五个数,并思考如何输入任意五个 数,五个数可以有一位数,二位数,三位数,四位数,五位数,混合输入比较大小; 2. 对这组数用冒泡法进行排序, 并输出原始数据及排序后数据, 两两数据之间用空格分隔; 3. 利用 DEBUG 调试工具,用 D0 命令,查看排序前后,内存数据的变化,以及会用调试命 令查看程序运算中寄存器中的值; 4. 去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值; 5. 用压栈 PUSH 和出栈 POP 指令“先进后出”的特点,设计算法将平均值按位逐个输出(即 输出 263); 6. 用移位指令将平均值以二进制串的形式输出。

7. 设计程序要有模块化的思想,用子程序实现不同的功能; 所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300 等) , 所有数据结果能清晰地显示在电脑屏幕上。 二.程序流程图 开始 输出 'QING SHU RU 5 GE SHU JU'

提示输入数据 输入5个待排 序的数据 输出'PAI XU HOU DE SHU JU SHUN XU SHI:' CX=4 (外循 环) CX入栈 指针指向第 一个数 比较相邻两数大小,前一个数比后 一个小? N 将这两个数 交换位置 Y N N CX减1,指针 指向下一个数 CX=0? Y 外循环CX出 桟并减1 CX=0? Y 输出排序后 的五个数据 输出’ZUI DA ZHI SHI:’ 将平均值按位 转换为ASCII码 逐个输出 输出’PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU:’ 输出第5个数 即最大值 输出’ZUI XIAO ZHI SHI:’ 输出第1个数 即最小值 设置CX=16, SI=0,数据段设 置变量STR1 DB 16 DUP(30H) 将平均值(二 进制)带进位 左移一位 输出’PING JUN ZHI SHI:’ HE=0 CX=3 指针指向 第二个数 将其由ASCII码 转换成2进制数 CF=0? Y N 将[STR+SI]对应 的字符输出 N 将[STR+SI]加1 指针指向 下一个数 HE=HE+该 二进制数 SI加1 CX减1 CX=0? Y CX减1 N CX=0? Y HE除以3得 到平均值 结束 三.程序代码 练习一:

DATA SEGMENT A DB 90 B DB -70 C DB 5 Y DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BL,A MOV CL,B ADD BL,CL MOV AL,02H IMUL BL MOV BX,AX MOV AL,A MOV CL,C IMUL CL IDIV CL ADD AX,BX MOV Y,AX MOV AH,4CH INT 21H CODE ENDS END START ;A+B ;2*(A+B) ;A*C ;A*C/5 练习二:

DATA SEGMENT A DW 15786 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,A MOV CX,16 LEFT: TEST BX,8000H JNZ L1 MOV DL,'0'

MOV AH,02H INT 21H SHL: SHL BX,1 LOOP LEFT MOV AX,4CH INT 21H L1:

MOV DL,'1'

MOV AH,02H INT 21H JMP SHL CODE ENDS END START 运行结果:

;输出‘1’ ;当首位为 1,执行 L1 ;输出‘0’ 练习三:

DATA SEGMENT SUM DW ? HEHE DB ?,?,?,?,? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,HEHE MOV BL,0 MOV CX,5 LOOP1: MOV AH,01H INT 21H SUB AL,30H MOV [SI],AL INC SI LOOP LOOP1 MOV CX,5 MOV AX,0 SUB SI,5 LOOP2: ADD AL,[SI] AAA INC SI LOOP LOOP2 MOV BX,AX MOV SUM,AX MOV ADD MOV INT MOV ADD MOV INT MOV DL,BH DL,30H AH,2 21H DL,BL DL,30H AH,2 21H AH,4CH INT 21H ENDS END START 运行结果:

CODE 冒泡排序法程序:

DATAS SEGMENT SHURU DB 'QING SHU RU 5 GE SHU JU',13,10,'$'

SHU1 DB 4,?,3 DUP(?) SHU2 DB 4,?,3 DUP(?) SHU3 DB 4,?,3 DUP(?) SHU4 DB 4,?,3 DUP(?) SHU5 DB 4,?,3 DUP(?) AVER DB 3 DUP(?) SHUCHU DB 'PAI XU HOU DE SHU JU SHUN XU SHI',':','$'

MAX DB 'ZUI DA ZHI SHI',':','$'

MIN DB 'ZUI XIAO ZHI SHI',':','$'

AVERAGE DB 'PING JUN ZHI SHI',':','$'

CHUSHU DB 100,10 HE DW ? STR1 DB 16 DUP(30H) STR2 DB 'PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU',':','$'

DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV ES,AX LEA DX,SHURU;显示 QING SHU RU 5 GE SHU JU: MOV AH,9 INT 21H MOV CX,5;输入五个数字 MOV SI,0 INPUT: LEA DX,[SHU1+SI];输入要排序的原始数据 MOV AH,10 INT 21H MOV DL,10;输入后换行 MOV AH,2 INT 21H ADD SI,5;指针加 5,指向下一个变量 LOOP INPUT CLD MOV CX,4;设定排序外循环次数 A: MOV BP,0 PUSH CX;外循环次数入栈 PX: PUSH CX MOV CX,3 LEA SI,[SHU1+BP+2];逐位比较两个数大小 LEA DI,[SHU1+BP+7] REPZ CMPSB JB B;如果小于直接比较下一个数,否则两个数对换位置 MOV CX,3 Jh: MOV AL,SHU1[BP+2] XCHG AL,SHU1[BP+7];将两个字节对换位置,循环 3 次即完成这两个数的 交换 XCHG AL,SHU1[BP+2] INC BP LOOP Jh SUB BP,3 B: ADD BP,5;指向后面两个数字 POP CX LOOP PX POP CX;外循环次数出栈 LOOP A LEA DX,SHUCHU;输出字符串'PAI XU HOU DE SHU JU SHUN XU SHI:'

MOV AH,9 INT 21H MOV CX,5 MOV SI,2 OUTPUT:PUSH CX;计数器入栈实现循环嵌套 MOV CX,3 L: MOV AL,[SHU1+SI];输出排序后的 5 个数字 MOV DL,AL MOV AH,2 INT 21H INC SI LOOP L MOV DL,2CH MOV AH,2 INT 21H ADD SI,2 POP CX;计数器出栈 LOOP OUTPUT MOV DL,10 MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,MAX;输出字符串'ZUI DA ZHI SHI:'

MOV AH,9 INT 21H MOV CX,3 MOV SI,2 D: MOV DL,[SHU5+SI];输出最大值 MOV AH,2 INT 21H INC SI LOOP D MOV DL,10;换行 MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,MIN;输出字符串'ZUI XIAO ZHI SHI:'

MOV AH,9 INT 21H MOV CX,3 MOV SI,2 E: MOV DL,[SHU1+SI];输出最小值 MOV AH,2 INT 21H INC SI LOOP E MOV DL,10 MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,AVERAGE;输出字符串'PING JUN ZHI SHI:'

MOV AH,9 INT 21H MOV CX,3 MOV BX,10;除数 10 MOV SI,2 AD: MOV DX,0 MOV AH,0 PUSH CX MOV CX,3 ZH: MOV AL,[SHU2+SI];将十进制数转换为二进制数,为后面求平均值做准备 SUB AL,30H PUSH AX MOV AX,DX MUL BX MOV DX,AX POP AX ADD DX,AX INC SI LOOP ZH;执行 3 次完成 3 个十进制数的转换 ADD SI,2 POP CX ADD HE,DX;将 DX 的数放在 HE 中 LOOP AD;循环后得到三个十进制数转换为二进制数之后的相加和 MOV DX,HE;

MOV AX,DX XOR DX,DX MOV BX,3 DIV BX;除 3 取平均值,结果将商放在 AX 中,余数放在 DX 中 MOV BX,AX;给 BX 赋值平均数,然后将 BX 中表示的十进制数转换为对应 的字符串 DIV CHUSHU;除 100 取最高位 ADD AL,30H;转换为 ASCII 码 MOV AVER,AL MOV AL,AH XOR AH,AH DIV [CHUSHU+1];除 10 取十位 ADD AL,30H ADD AH,30H;余数就是个位 MOV [AVER+1],AL MOV [AVER+2],AH MOV CX,3 MOV SI,0 F: MOV DL,[AVER+SI];输出平均值 MOV AH,2 INT 21H INC SI LOOP F MOV DL,10 MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA DX,STR2 ;输出字符串'PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU:

’ MOV AH,9 INT 21H MOV CX,16 MOV SI,0 G: RCL BX,1;将平均数转换为二进制串 JNC H ADD [STR1+SI],1;如果不为 0 就将其加 1 变成 1 的 ASCII 码值 H: MOV DL,[STR1+SI];将二进制串逐个输出 MOV AH,2 INT 21H INC SI LOOP G MOV AH,4CH INT 21H CODES ENDS END START 运行结果: 四.实验感想和收获 本次实验相较于第一次难度增大了很多,本人花了大约 12 个小时才做完。

第一个练习很简单,从编译到连接都是一次通过,在用 DEBUG 调试发现结果却实 正确。不过在做第二个练习时我遇到了困难,完全没有思路。当时不知道怎么对 一位一位的数据进行操作,在看书的过程中无意中发现了循环指令,我才意识到 用 SHL 指令可以实现这个功能。第三个联系主要考查我们对中断指令的了解程 度,我实现地是一位数的加法,不过后来老师发给了我们他自己编的版本,我感 慨道编程真是一门大学问,要考虑到各种各样的功能,人机互动,可能出错的地 方。这都是需要大量的实践积累才行。

在编写冒泡排序法这个程序时我遇到了很多困难。

起初在编写一段循环指令 时,未把寄存器 CX 入宅,所以影响了其他部分的循环次数,导致结果出错。所 以今后编程时一定要把有用的信息入宅, 防止被其他指令所改变。

在输出字符时, 必须记得把要输出字符的值转变成 ASCI 码,我期初输出数字时就忘记了这一步 导致出了很多差错。同时在将二进制数转变成 BCD 吗输出时可以通过除 10 来实 现,将得到的商继续除 10,而得到的余数就是个位的值,同理,再次除 10 得到 的余数就是 10 位。所以通过适当此处的出发可以将二进制数转变为 BCD 码。

通过亲身实践这次试验,对汇编语言编程有了初步的认识,也体会到了编程 的整个过程。从读题,设计程序框架到写代码,步步承接,同时将课堂上所学的 知识运用起来,在加深理解的同时也发现了自己很多不懂的地方,于是通过自己 查资料,问老师终于将程序一步步地调试正确得出期望的结果,那种自豪和满足 感油然而生。 第三次实验 8253 定时器/计数器与接口实验 ——乐曲程序 一.功能说明 计算机是如何产生音乐和声响的呢?原来在计算机中有一个可编程时间间隔 定时器 8253,它能根据程序提供的计数值和工作模式,产生各种形状和各种频 率的计数/定时脉冲,提供给系统的各个部件使用。它还可以产生不同频率的脉 冲作为扬声器的声源。

在 8253 定 时器 内 部有 3 个 独立 工 作的计 数 器 :

Counter0, Counter1, Countre2,每个计数器都分配有一个端口地址,分别是 40H,41H,42H。8253 内 部还有一个公用的控制寄存器,端口地址为 43H,端口地址输入到 8253 的 CS, A1,A0 端,分别对三个计数器和控制器寻址。

对 8253 编程时,先要设定控制字,以选择计数器,确定工作模式和计数值的 格式,每个计数器由三个引脚与外部联系,CLK 为时钟输入端,GATA 为门控制信 号输入端,OUT 为计数/定时信号输入端。每个计数器是以倒计数的方式计数, 也就是说,从计数初值开始逐次减 1,直到减为 0 为止。

端口地址与计数器的关系:

40H 选中计数器 0:作为定时器为系统日时钟提供计时基准 41H 选中计数器 1:作为定时器使用 42H 43H 选中计数器 2:用来控制扬声器发声 公用的控制器:分别对三个寄存器和控制器寻址 那么,如何触动扬声器发出声音呢?原来 PC 机的主音箱上装有一只小喇叭,由 定时器 8253 和并行接口芯片 8255(可编程外围接口芯片)控制其发声,8255 包 括三个 8 位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的 I/O 端口地址为 60H 和 62H,输出寄存器分配的 I/O 端口地址为 61H。8253 定时 器计数器 2 连接到扬声器,其电路如下: 8253 1.9318MHZ 8255 PB0 PB1 GATE2 CLK OUT2 与门 DRIVER 喇叭 门 22 门1 门 装入计数器 2 的计数初值为 533H(1.19318MHz/896Hz=1331=533H),这样, 得到的控制字为 10110110B=0B6H,即选中计数器 2,读/写,工作方式三(方波 发声器) ,二进制。

计数器 2 的初始化程序为:

MOV AL,0B6H OUT 43H,AL 1)计算计数值程序段:

MOV DI, 给定频率 MOV DX, 12H MOV AX, 34DCH DIV DI AX 中即为计数值。

2)打开扬声器发声,8255PB0,PBI 送出高电平:

IN AL , 61H OR AL , 3 OUT 61H , AL 3)关闭扬声器,停止发声:

IN AL ,61H AND AL , 0FCH OUT 61H, AL 两只老虎的音频表定义在数据段中,如下:

STACK SEGMENT DW 100 DUP(?) STACK ENDS DATA SEGMENT MUSIC DW 2 DUP(262,294,330,262) DW 2 DUP(330,349,392) DW 2 DUP(392,440,392,349,330,262) dw 2 dup(294,196,262),0 束 TIME DW 10 DUP(250*50),500*50,250*50,250*50,500*50 ;节拍表 DW 2 DUP(120*50,120*50,120*50,120*50,250*50,250*50) DW 2 DUP(250*50,250*50,500*50) 32 ;32 个音符 ;

频率表,1231;1231 ;345;345;

;565431;565431 ;251;251,0 表示结 N EQU DATA ENDS 二.实验目的:

学习 8253 计数器 2 输出方波信号用以驱动扬声器发声的原理,通过程 序设置计数器 2 的输出波形的频率和延续时间,控制扬声器的音调和发生长短。

三.实验内容:

1.设计程序让微机演奏一段两只老虎的乐曲。

2.思考如何让 PC 机演奏一遍,两遍以及数遍这段两只老虎的乐曲,并修改 程序实现。

四.实验报告:

整理出运行正确的源程序清单(加以中文注释) ,并给出详细程序流程图。 三.程序代码 DATAS SEGMENT BG DB 0AH,0DH,”TWO TIGER:$” FREQ DW 2 DUP(262,294,330,262) DW 2 DUP(330,349,392) DW 2 DUP(392,440,392,349,330,262) DW 2 DUP(294,196,262),0 TIME ;频率表 DW 10 DUP(250*50),500*50,250*50,250*50,500*50 DW 2 DUP(120*50,120*50,120*50,120*50,250*50,250*50) DW 2 DUP(250*50,250*50,500*50) NUM DB 3 DATAS ENDS STACK SEGMENT PARA STACK 'STACK'

DB 200 DUP(?) ;堆栈段定义并分配存储空间 STACK ENDS ASSUME CS:CODE,DS:DATA,SS:STACK STAT PROC FAR PUSH DS MOV AX,0 ;DS 中包含的是程序段前缀的起始地址 PUSH AX MOV AX ,DATA MOV DS,AX MOV DX,OFFSET BG MOV AH,09 INT 21H LP0:

MOV SI,OFFSET FREQ MOV BP,OFFSET TIME CALL SING DEC NUM ;调用子程序,开始演奏 ; 输出字符串“TWO TIGER” CMP NUM,0 JNZ LP0 RET STAT ENDP SING PROC NEAR PUSH DI PUSH SI PUSH BP PUSH BX REPTO: MOV DI,[SI] CMP DI,0 JE END_SING MOV BX,DS:[BP] CALL SOUND ADD SI,2 ADD BP,2 JMP REPTO END_SING:POP BX POP BP POP SI POP DI RET SING SOUND ENDP PROC NEAR ;扬声器发声子程序 若 DI=0,则演奏结束 ;DI 指向频率表首地址 ;演奏子程序 PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI MOV AL,0B6H ;开始计算计数值 OUT 43H,AL MOV DX,12H MOV AX 34DCH DIV DI OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H MOV AH,AL OR AL,3 OUT 61H,AL DELAY: MOV CX,20000 DL 10MS:LOOP DL10MS DEC BX JNZ DELAY MOV AL,AH OUT 61H,AL POP DI POP DX POP CX POP BX POP AX RET SOUND ENDP CODE ENDS END STAT ;关闭扬声器 ;延时 10MS ;打开扬声器发声 四.实验感想和收获 这个程序最初一直存在输出乱码的情况,后来经过单步调试,发现是通用子 程序时没有进行现场的保护,几个存储器被多次赋值,导致最后不能输出正确的 结果。因此我之后增加了堆栈段的定义,对几个寄存器进行了入栈保护,对子程 序 的 调 用 进 行 了 现 场 保 护 。

计 数 器 2 的 计 数 初 值 为 533H , 控 制 字 为 10110110B=0B6H,这个控制字切记不能搞错,同时也要清楚地区分各个计数器的 端口地址以及控制口的端口地址。在播放音乐的子程序中,应当将数值传到端口 42H,打开扬声器,延时,关闭扬声器的顺序执行,最初我在编程时漏掉了延时 的过程,导致无法得到正确的结果。另外,在 SOUND 子程序末尾一定要记住返回 中断点,因为这是一个循环,不是只出现一个音符,而是要一直播放整个音乐。

通过这个试验,我对子程序调用,堆栈段使用有了更深的理解,通过自己编 译,调试,一步步找到自己的不足,这是一个学习的过程,也是对知识的探求。

这次试验老师给了我们很多的资料和一些源代码, 我要做的不仅是将他们拼接起 来,是要根据自己的设计对他们加以运用,并补充很多的子程序,现场保护代码 等,将其完善,变为自己的程序。子程序调用必须先进行现场保护,这是非常重 要的,也是汇编语言和高级语言一大不同所决定的。

编程需要耐心和决心, 只有一步步检查, 才能使程序正确, 达到想要的结果, 正因为这样,当程序编译成功,电脑开始播放音乐时,那种成功地满足感不是用 语言形容的,这让我对这门课程有了更多地兴趣。

《微机原理与接口技术实验报告》 学 班 老 学 姓 院: 级: 师: 号: 名: 电气信息学院 109 班 罗江陶 1143031270 实验一 一、实验目的: 汇编语言程序的上机步骤 1、了解汇编...

四川大学 微机原理与接口技术 上机实验报告 2008级、2010级微机原理与接口技术的上机实验,基本程序,加了注释,程序简洁 资源积分: 4分 下载次数: 54 资源类型: 其他 资...

四川大学计算机学院、软件学院实14 周验报告学号: _XXXX_ 姓名: _XXXX_ 专业: _计算机科学与技术_ 班级: _2010 级XX 班_ 第课程名称16/32 位微机原理、 汇编语言及接...

 
  • 泥巴往事网(www.nbwtv.com) © 2014 版权所有 All Rights Reserved.