微机原理实验报告1(参考答案)
微机原理实验报告(1)
微机原理与接口技术实验报告学院:计算机科学与工程学院专业:计算机科学与技术班级:计算机四班学号:姓名:指导老师:宋芳2011年12月1日调试程序DEBUG的使用练习一、实验目的:1.学习DEBUG常用命令的使用2.熟悉8086的寄存器3.了解程序运行的过程二、实验内容:分别用DEBUG程序的命令实现对PC机RAM单元、CPU寄存器等的内容修改及简单程序的跟踪运行;三、具体实验过程Debug的R命令查看、改变CPU寄存器的内容Debug的D命令查看内存中的内容Debug的E命令改写内存中的内容Debug的U命令将内存中的机器指令翻译成汇编指令Debug的T命令执行一条机器指令当指令是修改段寄存器SS时,修改SP的指令也一下执行了。
也可以跳到指定代码段执行:-t=0B39:0106Debug的A命令以汇编指令的格式在内存中写入一条机器指令用G是断点执行,用-g=100 106 10D,默认为段地址是CS。
2、在debug中,遇到loop循环指令时,可以用p跳过;实验十八写文件实验一.实验要求编写程序,将内存区域中用DEBUG程序设置好的一连串数据,以ASCII码1AH为结束符作为一个文件,存入磁盘,文件名为DATA.AAA.二.实验目的掌握写文件的DOS功能调用方法。
三.实验说明1.对于文件的读写操作,DOS提供了两种手段,第一种手段使用FCB进行存取,第二种手段是文件代号法进行存取。
文件代号法支持目寻路径,并且对错误采用了更统一的办法处理,是DOS推荐的存取方法。
2.使用文件代号法,要求文件名(含路径)用ASCII串表示,所谓ASCII串,就是以空字符00H结尾的一串ASCII字符。
3.文件代号法存取时出现错误,则功能调用返回时,要将CF标志位置1,同时在AX寄存器中返回统一的出错代码。
程序中要用JC指令进行错误判定,确认出错后再将错误代码显示出来,以便分析出错原因。
四.实验代码DATA SEGMENTBUFFER DB 'my name is tang zhi quan,my number is 0905010215' COUNT EQU $-BUFFER ;the count of ASCII for bufferDA DB 'please enter the file absolute path and file name:$' ADDRESS DB 40,?,40 DUP (?)BUILD_FAIT DB OFFSET AX3,OFFSET AX4,OFFSET AX5AX3 DB 'path cannot find$'AX4 DB 'open file too much$'AX5 DB 'access method is wrong$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,DA ;Prompt for the file absolute pathMOV AH,9INT 21HLEA DX,ADDRESS ;set file pathMOV AH,0AHINT 21HMOV AH,2 ;put crlfMOV DL,0AHINT 21HMOV DL,0DHINT 21HMOV AL,ADDRESS+1 ;the number of path to SI MOV AH,0MOV SI,AXMOV DX,OFFSET ADDRESS+2 ;the first address for file path MOV BX,DXMOV BYTE PTR [BX+SI],'$' ;the end add 'S' to mark the end MOV CX,00H ;file propertyMOV AH,3CH ;create a file,the absolute path is "ADDRESS" INT 21HJNC NEXT ;sign create file succesWRONG_SHOW: MOV BX,OFFSET BUILD_FAIT;show the reason for file establish SUB AX,3 ;fail code of ax is 3,4,5ADD BX,AX ;ds:dx is the wrong information's first address MOV DL,[BX]MOV DH,0MOV AH,9INT 21HNEXT: MOV BX,AX ;ax is the number of file handlesMOV CX,COUNT ;the number of bufferLEA DX,BUFFER ;ds:dx point the first address of buffer MOV AH,40HINT 21HINT 21H ;endMOV AX,4C00HINT 21HCODE ENDSEND STAR开始初始化用int 21H的9号调用显示提示输入文件的绝对路径用int21H的0AH号调用输入并回显在屏幕上,并存入变量ADDRESS中,在后面加入'$'结束符输出换行回车用int21H的3CH号调用创建文件DATA.AAA,属性为默认读写CF=1YN创建文件失败,显示错误信息用int21H中的40H调用将buffer中的数据写入文件用int21H的3EH调用关闭文件结束实验三 8255输出实验一.实验要求编写程序,一8255作为输出口,控制8个单色LED灯。
微机原理实验报告
结
论
结果记录:
教 师 批 阅
1.实验态度(含预习) (认真、 较认真、 一般、 较差、很差) ;占 30% 2.实验操作能力及完成情况 (好、 较好、 一般、 较差、 很差) ;占 30% 3.实验结果记录及分析 (正确、 比较正确、 一般、 较差、 很差) ;占 30% 4.报告工整度 (好、 较好、 一般、 较差、 很差) ;占 10%
P3.2
(INT0) 发 生 中 断 后 ,
;开关置 0 立即置 1,观察到的现象是
P3.3(INT1) 立 即 中 断 ; 观 察 到 的 现 象 。 。
3)在 SETB PX1 前加分号,观察到的现象是
3.设 P3.3(INT1)优先中断,观察两个中断顺序不同的结果有什么不同。 实验程序:
六、心得体会
1) 开关置 0 不动观察到的现象是 是 。这是因为 2)将程序中的 CLR 是 这是因为
;开关置 0 立即置 1,观察到的现象 。
1) 在 是 2) 在 是
P3.3
(INT1) 发 生 中 断 后 ,
P3.2(INT0) 立 即 中 断 ; 观 察 到 的 现 象 。
IT1 改为 SETB IT1 再运行。开关置 0 不动观察到的现象 。 。
评定等级(或分数) :[
Hale Waihona Puke ]
答案版_微机原理实验报告
《微机原理及接口技术》实验报告2013~2014学年第一学期班级姓名学号指导教师实验一Emu8086软件的使用一、实验目的1、熟悉汇编语言开发环境。
2、掌握Emu8086软件使用方法。
3、理解寻址方式的意义。
二、实验环境1、硬件环境:微机。
2、软件环境:Emu8086 4.07。
三、实验内容1、安装及运行Emu8086将老师发给大家的emu8086软件安装在自己的微机上,然后双击运行桌面上的快捷方式Emu8086,单击“new”按钮,选择“COM template”,然后单击“OK”按钮。
准备在光标闪烁处输入代码。
2、熟悉Emu8086的基本操作(1)有以下程序段,请正确填空。
MOV AX,10000MOV BX,0E49AHADD AX,BXHLT ;表示CPU停机该程序段执行后,AX=__0BAAH___,BX=_E49AH____,CF=__1___,OF=___0__,SF=___0__,ZF=__0__。
(2)上机调试并验证。
单步执行物理地址可以察看flags的各标志十进制表示机器码的十六进制表示①输入(1)中的程序段。
②程序输入后,单击工具栏上的“emulate”按钮,开始执行程序。
③认识Emu8086的指令执行界面,如上图所示,并开始单步执行指令,观察每条指令执行后的情况,与自己的思考相验证。
④程序执行完毕,观察各寄存器的值以及flags中各状态的值,检测并纠正自己的错误答案,并找出错误的原因。
(3)寻址方式已知DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,试写出以下各指令中源操作数的寻址方式,并计算出它们的物理地址。
① MOV AX,[100H]源操作数的寻址方式是__直接寻址__________,源操作数的物理地址是_10100H__________。
② MOV AX,[BP+10H]源操作数的寻址方式是__寄存器相对寻址___,源操作数的物理地址是_35210H__________。
微机原理实验一参考答案
实验一汇编语言的工作环境与上机步骤【实验目的】1、熟悉汇编语言的WINDOWS环境下Emu8086的操作环境和操作方法。
2、学会用实验的方式验证理论,进一步熟悉汇编语言开发环境。
3、深刻理解寻址方式的意义以及80X86指令的各种寻址方式。
4、深刻理解80X86各种指令的真正含义及功能。
5、了解汇编语言的程序结构、完成一个简单的程序的填充。
【实验环境】硬件环境IBM/PC 及其兼容机软件环境可视化编程环境Emu8086【实验内容及要求】1、对寄存器和存储单元赋值,观察每个寄存器和存储单元的值。
首先,完成对以下寄存器和存储单元的赋值,赋值内容如下:DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H。
以下为仿真语句示例:MOV AX,1000HMOV DS,AX ;给数据段DS赋初值1000HMOV AX,2000HMOV SS,AX ;给扩展段SS赋初值 2000HMOV AX,1A2BHMOV BX,1200HMOV CX,339AHMOV BP,1200HMOV SP,1350HMOV SI,1354H ;给通用寄存器赋初值MOV [1350H],0A5HMOV [1351H],3CHMOV [1352H],0FFHMOV [1353H],26HMOV [1354H],52HMOV [1355H],0E7HMOV [26A4H],9DHMOV [26A5H],16H ;给数据段偏移量为1350H~1355H、126A4H~126A5H的存储单元赋初值MOV SS:[1350H],88HMOV SS:[1351H],51H ;给堆栈段偏移量为1350H、1351H的存储单元赋初值2、在以上环境下,请仿真以下简单指令,在下列各小题的空格中填入相应指令的仿真执行结果,并与理论分析结果相比较,确认是否一致。
微机原理实验报告参考
实验一汇编语言程序上机过程练习1.实验目的掌握汇编语言程序上机的步骤,掌握汇编语言程序编辑、汇编、连接、运行、调试的方法。
2.实验内容:输入老师提供的汇编语言源程序,完成汇编、连接、运行、调试过程。
3.实验步骤:(1)、上机环境的准备在资源管理器中,在d盘上新建自己的文件夹zhangsan(备注:请把zhangsan替换成你自己的文件夹名,用英文字母命名,并且名字长度不超过8个字符)。
把机器上的masm.exe和link.exe等文件拷到该文件夹内。
(2)、上机过程①切换工作路径:打开命令提示符窗口、转到d盘、切换我的文件夹为当前路径②把老师提供的源程序用记事本(或者EDIT)输入到机器内,保存为扩展名为.asm的文本文件。
③用汇编程序MASM对源程序进行汇编,如果源程序有错误则修改,直到汇编通过,生成扩展名为OBJ的二进制的目标文件。
④用连接程序LINK对上面生成的二进制目标文件进行连接,有错误则修改源程序,重新进行汇编、连接,直到连接成功生成扩展名为EXE的可执行文件。
⑤在DOS提示符下运行可执行文件。
屏幕上显示“Hello Word!”⑥用DEBUG对可执行文件进行调试。
4.附源程序:DATA SEGMENTMSG DB 'HELLO WORLD!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,MSGMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验二汇编语言程序设计练习1.实验目的(1)掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图。
说明流程图中各功能的含义和表示法。
分配工作单元和存储空间。
根据程序算法流程选择合适的指令编制汇编语言源程序。
(2)掌握顺序程序的设计基本方法和技巧。
(3)掌握分支程序设计的方法,重点掌握各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧。
《微机原理》(一)习题及参考答案.doc
*教材:《微机原理与接口技术实用教程》,杨帮华等编,清华大学出版社,2008. 5习题一1、十进制一二进制:73.8125 =2、十进制一十六进制:299. 34375 =3、二进制一十进制:10010010. 001B =4^十六进制一十进制:8F. 7H =5、已知:a = 1011B, b = 11001B, c = 100110B,用二进制完成下列算术运算,并用十进制运算检查结果:(1)a+b; (2) c-a~b;(3) aXb; (4) c/a。
6、已知:a = 00111000B, b = 11000111B,试求以下逻辑运算结果:(1) a AND b ;(2) a OR b ;(3) a XOR b ; (4) NOT a。
7、写出下列各数的8位原码和补码:(1) +1010101B;(2) -1010101B;(3) +1111111B;(4) -1111111B;(5) +1000000B;(6) -1000000B;(7) +34 ;(8) -69。
8、对下列8位补码分别进行a+b和a-b运算,并判断结果是否溢出:(1) a = 37H, b = 57H; (2) a =0B7H, b =0D7H ;(3) a =0F7H, b =0D7H; (4) a = 37H, b =0C7H 。
9、将下列十进制数用BCD表示,并用加6修正法求运算结果:(1) 38+42;(2) 56+77;(3) 99+88;(4) 34+69 。
10、将下列字符串用偶校验ASCII表示(以十六进制形式):(1) SAM JONES; (2) -75. 61。
11、用规格化浮点数表示(设阶为4位原码,尾为8位补码):-3. 125 =*习题一参考答案1、01001001.1101B2、12B.58H3、146.1254、143.43755、100100B, 0010B, 100010011B, 0011B...0101B6、00000000B, 11111111B, 11111111B, 11000111B7、01010101B、01010101B, 11010101B、10101011B, 01111111B、01111111B,11111111B、10000001B, 01000000Bs 01000000B, 11000000> 11000000B,00100010B、00100010B, 11000101B、10111011B8、8EHx、E0H V , 8EH "、E0H V , CEH ”、20H V , FEH ”、70H V9、80, (1)33, (1)87, (1)0310、53、41、4D、20、4A、4F、4E、45、53, 2D、37、35、2E、36、31 (H)偶校验:0101001k 01000001、01001101, 10100000、11001010> 1100111k 01001110, 1100010k01010011, 00101101, 1011011K 0011010k 00101110> 00110110, 10110001 (B)11、一3.125 = —11.001B=—0.11001B X 2+2,即:0010 10011100B (阶为4位原码,尾为8位补码)习题二教材P24 (1.8习题):一、6教材 P115 (3. 5 习2, 习题三 二、1*习题三参考答案 教材P115 (3. 5习题):一、1、假定 DS=2000H, SS=1500H, SI=OOAOH, BX=0100H, BP=0010H,数据变量 VAL 的偏地址为0050H,请指出下列指令中源操作数采用什么寻址方式?若源操作数在存储器(1) MOV AX, OABH (2) MOV AX, [100H](3) MOV AX, VAL(4) MOV BX, [SI](5) MOV AL, VAL[BX](6) MOV CL, [BP][SI] ;立即寻址;直接寻址,EA=0100H, PA=DSX10H+EA=20100H ;直接寻址,EA=VAL=0050H, PA=DS X 10H+EA=20050H ;寄存器间接寻址,EA=SI=OOAOH, PA=DSX10H+EA=200A0H ;寄存器相对寻址,EA=BX+VAL=0150H, PA=DSX 10H+EA=20150H ;基址变址寻址,EA=BP+SI=OOBOH, PA=SS X(1) MOV AH, BX (2) MOV [SI], [BX] (3) MOV AX, [SI][DI]MOV AX, [BX][BP];X ,源、目的字长不一致(或类型不一致) ;X ,源、目的不可同为存储器操作数 ;X,基址变址寻址不可SI 与DI 组合 ;X,基址变址寻址不可BX与BP 组合教材 P77 (2. 5 习题):一、1, 2, 3, 5, 6, 7, 8; 二、2, 4 补充题: 1、 将62A0H 加下列各数,试求其和及标志位AF 、SF 、ZF 、OF 、CF 、PF 的值。
微机原理实验报告
校区实验报告课程名称____________________________ 专业班级_____________________________ 学生及学号____________________________指导教师____________________________实验地点————————————————2015 ~2016 学年第二学期《微机原理与接口技术》实验一(1)实验名称存贮器部数据传送姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、初步掌握星研集成环境工具软件的使用方法。
2、掌握存储器部不同位置间数据传送的方法。
3、认真预习本节实验容,尝试自行编写程序,填写实验报告。
二、实验容(包括实验步骤和代码)1、编写源程序,要求将数据段中3000H~30FFH 单元的容传送给6000H~60FFH 单元中。
2、编译、连接所编写的源程序。
3、执行程序前,利用存贮器窗口将DS:3000H~300FH 中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,在相对应的地址中直接输入数据即可。
4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式运行程序,同时在工作区窗口的CommonRegister 视图中查看本程序所使用的寄存器(CX、DI、SI)容的变化。
5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。
程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DI,6000HCLDREPE MOVSBMOV CX,100HMOV SI,3000HMOV DI,6000HREPE CMPSBJNE ERRORTRUE: JMP $ERROR: JMP $END START三、实验结果及其分析1、通过该实验,成功地将数据段中3000H~30FFH 单元的容传送到了6000H~60FFH 单元中。
微机原理实验报告
微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加, 要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1.DATA2为首的5个内存单元中(低位在前), 结果送回DATA1处。
三、程序框图图3-1四、参考程序清单程序名: XIANGJ.ASMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?) DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC N EARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP A D2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30H DEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五: 结果分析这次试验依次将相加数和被相加数存入AL, BL, 依次从低位向高位相加, 然后把结果放在内存中, 根据程序走向, 相加的结果依次放在内存地址DS:0000到DS:0004的位置上, 和我们实验预期结果一样。
微机原理实验报告2011
微机原理与应用实验报告
专业:
班级:
姓名:
学号:
时间:
指导教师:
二○一一年五月改编
云南农业大学工程技术学院--------------------------微机原理与应用实验报告
实验一8086基本指令及程序结构实验报告姓名:学号:专业:年级:
1
2
3
云南农业大学工程技术学院--------------------------微机原理与应用实验报告
实验二编程及汇编实验报告
姓名:学号:专业:年级:
4
5
6
云南农业大学工程技术学院--------------------------微机原理与应用实验报告
实验三8255A并行口实验报告
姓名:学号:专业:年级:
7
8
云南农业大学工程技术学院--------------------------微机原理与应用实验报告
实验四继电器控制实验报告
姓名:学号:专业:年级:
9
10。
微机原理实验报告
微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序流程图图3-1四、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30H ADD BYTE PTR [DI],30H DEC SIDEC DIDEC BXJNZ AD3RETADDA ENDP CODE ENDS END STAR实验二排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。
微机原理实验报告
微机原理实验报告实验⼀DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.练习使⽤DEBUG,调试简单汇编程序。
⼆、实验要求1.掌握DEBUG的使⽤,调试程序。
2.读懂程序中各条指令,说明程序功能。
三、实验内容1.启动DEBUG,⽤A命令输⼊并汇编下列程序段。
100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验⼆简单汇编语⾔设计实验类型:实验课时:指导教师:时间: 2012 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.巩固DEBUG及宏汇编的使⽤。
2.加深对指令的理解。
⼆、实验要求1.设堆栈指针SP=2000H,(AX)=3000H,(BX)=5000H。
请编⼀程序将AX的内容和BX的内容进⾏交换。
请⽤堆栈作为两寄存器交换内容的中间存储单元,⽤DEBUG调试程序进⾏汇编与调试。
2.设DS=当前段指地址,(BX)=0300H,(SI)=0002H,请⽤DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装⼊0AH、0BH、0CH、0DH、0EH。
在DEBUG状态下送⼊下⾯程序,并⽤单步执⾏的⽅法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3.设(AX)=0002H,编⼀个程序段将AX的内容乘10,要求⽤移位的⽅法完成。
三、思想描述实验内容1将两个寄存器的内容进⾏交换时,必须有⼀个中间寄存器才能进⾏内容的交换,如果⽤堆栈做为中间存储单元,必须遵循先进后出的原则。
微机原理实验报告
微机原理实验报告1.实验的目的是学习8086/8088指令系统中一些基本指令的用法以及程序的基本方法。
2.熟悉在PC上建立,组装,连接,调试和运行8086.8088汇编语言程序的全过程。
2,在实验中,四个数字a,B,C和D分别以单字节压缩BCD代码的形式存储在num存储器的四个单元中。
然后,计算(a + b)-(c + D)并以Y1单位放置,结果显示在屏幕上。
在调试中,不断更改a,B,C,D的内容并查看结果。
本文提供了几组数据:1. A = 09,B = 06,C = 04,d = 07 2. A = 38,B = 41,C = 29,d = 343. A = 70,B = 23,C = 42,d = 414. A = 63,B = 73,C = 62,d = 50 3.实验调试的过程1.使用DOS工具掩码和链接生成EXE文件2.使用调试工具编译断点调试程序。
1.用-U命令反汇编程序②设置断点1以检查a + B的结果是否正确。
结果存储在A1中23h,结果正确。
③设置断点2以检查C + D的结果是否正确。
如果将结果存储在Al中30h,则结果正确。
④运行程序后,使用-D命令检查最终结果是否正确。
数据段的第五个地址是计算结果,该结果正确。
⑤使用-E特别是在(a + b)-(c + D)中,如果前者小于后者,则结果可能不正确。
这时,我们应该判断借位标志是否为负。
如果为负,请使用(c + D)-(a + b)并在结果中输出一个负号。
3.成功调试并检查结果直接在DOS命令add.exe 下运行或在调试中使用-G命令运行程序,并查看程序结果。
4.实验程序和DSEG程序框图。
定义数据段num DB 13h,27h,11h,12h;定义A,B,C,D Y1 DB?DSEG结束;数据段结束sseg段标准堆栈;定义堆栈DB 20 dup(?)sseg结束cseg段假定CS:cseg,ds:DSEG,SS:SSEG开始:MOV AX,DSEG MOV DS,AX MOV AX,SSEG MOV SS,AX MOV AL,[NUM];复制A至AL添加AL,[NUM + 1]; A + B DAA MOV CL,AL;保存AL MOV AL,[NUM + 2];复制C至AL 添加AL,[NUM + 3]; C + D DAA SUB CL,AL;(A + B)-(C + D)MOV AL,CL DAS MOV [NUM + 4],AL MOV BL,AL;保存AL和AL,0F0H; R SHIFT MOV CL,4 SHR AL,CL ADD AL,30H;获取ASCII MOV DL,AL MOV AH,02h int 21h mov Al,BL;恢复Al和Al,0Fh;取低4位,添加Al,30h mov DL,Al mov ah,02h int 21h mov ax,4c00h int 21h cseg结束起始端5。
uestc微机原理实验报告1
1、掌握ARM汇编指令
2、学习掌握C与汇编混合编程基础
3、熟练使用ARM调试工具RVDS进行调试操作
五、实验内容:
1.熟悉ARM汇编
2.用ARM汇编实现1+2+...+N
3.C调用汇编实验(实现字符串拷贝功能)
4.汇编调用C实验
5.ARM汇编实现冒泡算法
六、实验器材(设备、元器件):
硬件:PC机Pentium100以上
LDR r1,=src
inner
;------------------------------------------
;用汇编实现算法核心部分
LDRr2,[r1]
LDR r3,[r1,#4]
CMP r2,r3
STRGT r3,[r1]
STRGT r2,[r1,#4]
ADD r1,r1,#4
CMP r1,r6
STR R1,[R0]
MOV PC,LR返回语句
END
3、ARM汇编实现冒泡算法
这种方法的基本思想:是将待排序的元素看作是竖着排列的“气泡”,较大的元素比较重,从而要往下沉。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自上向下检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最重”的元素就沉到了最低位置;处理二遍之后,“次重”的元素就沉到了次低位置。在作第二遍处理时,由于最低位置上的元素已是“最重”元素,所以不必检查。一般地,第i遍处理时,不必检查第i低位置以下的元素,因为经过前面i-1遍的处理,它们已正确地排好序。
END
实验结果:
(完整版)微机原理答案1
第 1 章微型计算机系统概述习题参考答案1-1.微型计算机包括哪几个主要组成部分,各部分的基本功能是什么?答:微型计算机由CPU、存储器、输入/输出接口及系统总线组成。
CPU是微型计算机的核心部件,一般具有下列功能:进行算术和逻辑运算。
暂存少量数据。
对指令译码并执行指令所规定的操作。
与存储器和外设进行数据交换的能力。
提供整个系统所需要的定时和控制信号。
响应其他部件发出的中断请求;总线是计算机系统各功能模块间传递信息的公共通道,一般由总线控制器、总线发送器、总线接收器以及一组导线组成;存储器是用来存储数据、程序的部件;I/O接口是微型计算机的重要组成部件,在CPU和外设之间起适配作用。
1-2.CPU 执行指令的工作过程。
答:指令执行的基本过程:(1)开始执行程序时,程序计数器中保存第一条指令的地址,指明当前将要执行的指令存放在存储器的哪个单元。
(2)控制器:将程序计数器中的地址送至地址寄存器MAR,并发出读命令。
存储器根据此地址取出一条指令,经过数据总线进入指令寄存器IR。
(3)指令译码器译码,控制逻辑阵列发操作命令,执行指令操作码规定的操作。
(4)修改程序计数器的内容。
1-3.果微处理器的地址总线为20 位,它的最大寻址空间为多少?答:220=1048576=1MB1-4.处理器、微型计算机和微型计算机系统之间有什么关系?答:微处理器是微型计算机的核心部件。
微处理器配上存储器、输入/输出接口及相应的外设构成完整的微型计算机。
以微型计算机为主体,配上系统软件和外部设备以后,就构成了完整的微型计算机系统。
1-5.下面十进制数分别转换为二进制、八进制和十六进制数:128,65535,1024答:128,二进制:10000000B,八进制:200O,十六进制:80H65535,二进制:1111111111111111B,八进制:177777O,十六进制:FFFFH1024,二进制:10000000000B,八进制:2000O,十六进制:400H1-6.下面二进制数分别转换为十进制及十六进制数:1011.1010B,1111101.11 B答:1011.1010B,十进制:11.625,十六进制:B.AH111101.11B,十进制:125.75,十六进制:7D.CH1-7.(5487)10=(0101010010000111)BCD=1010101101111 B1-8.设字长为8 位,请写出下列数的原码、反码、补码和移码:15,-20,-27/32 答:[+15]原=00001111,[+15]反=00001111,[+15]补=00001111,[+15]移=10001111 [-20]原=10010100,[-20]反=11101011,[-20]补=11101100,[-20]移=01101100 [-27/32]原=1.1101100,[-27/32]反=1.0010011,[-27/32]补=1.0010100,[-27/32]移=0.0010100第 2 章微型计算机系统的微处理器习题参考答案2-1.086/8088 CPU 的功能结构由哪两部分组成?它们的主要功能是什么?答:8086/8088 CPU 的功能结构由以下两部分组成:总线接口单元BIU(Bus Interface Unit),执行部件EU (Execution Unit)。
大学微机原理实验报告(3篇)
第1篇实验名称:微机原理实验实验日期:2023年10月25日实验地点:计算机实验室实验教师:[教师姓名]实验学生:[学生姓名]班级:[班级名称]一、实验目的1. 理解微机原理的基本概念和组成结构。
2. 掌握微机硬件的基本操作和调试方法。
3. 熟悉汇编语言编程和程序调试技巧。
4. 通过实验加深对微机原理课程的理解,提高动手能力。
二、实验内容本次实验主要分为以下几个部分:1. 微机硬件系统结构认识:了解微机硬件系统的组成,包括CPU、内存、I/O接口等,熟悉各部件的功能和相互关系。
2. 汇编语言编程:学习汇编语言的基本语法和指令系统,编写简单的汇编程序,实现特定功能。
3. 程序调试:使用调试工具(如DEBUG)对汇编程序进行调试,查找并修正错误。
4. 微机原理实验:完成以下实验任务:1. 编写程序实现两个多位十进制数的相加。
2. 编写程序实现字符串比较功能。
3. 编写程序实现乘除法运算。
三、实验步骤1. 微机硬件系统结构认识:- 观察实验室中的微机硬件系统,了解各部件的连接方式和功能。
- 使用示波器检测实验装置的信号是否正常。
2. 汇编语言编程:- 学习汇编语言的基本语法和指令系统。
- 编写程序实现两个多位十进制数的相加,程序如下:```;加数DATA1 DB 3,4,5,6,7;被加数DATA2 DB 2,3,4,5,6;结果SUM DB 5 DUP(0);程序开始MOV CX, 5 ;循环次数MOV AL, 0 ;结果初始化为0MOV SI, OFFSET DATA1 ;加数地址MOV DI, OFFSET DATA2 ;被加数地址ADD_LOOP:ADD AL, [SI] ;加数加到AL寄存器ADC AL, [DI] ;进位加到AL寄存器MOV [DI], AL ;结果存回DI寄存器ADD SI, 1 ;加数地址加1ADD DI, 1 ;被加数地址加1LOOP ADD_LOOP ;循环;程序结束```- 编写程序实现字符串比较功能,程序如下:```;字符串1STRING1 DB 'Hello';字符串2STRING2 DB 'World';比较结果RESULT DB 0;程序开始MOV SI, OFFSET STRING1 ;字符串1地址MOV DI, OFFSET STRING2 ;字符串2地址CMP_LOOP:MOV AL, [SI] ;读取字符串1的当前字符CMP AL, [DI] ;与字符串2的当前字符比较 JNE NOT_EQUAL ;不相等则跳转到NOT_EQUAL INC SI ;字符串1地址加1INC DI ;字符串2地址加1LOOP CMP_LOOP ;循环MOV RESULT, 1 ;相等则将结果设置为1JMP END ;跳转到ENDNOT_EQUAL:MOV RESULT, 0 ;不相等则将结果设置为0END:;程序结束```- 编写程序实现乘除法运算,程序如下:```;被乘数DATA1 DB 10;乘数DATA2 DB 5;结果PRODUCT DB 0;程序开始MOV AL, [DATA1] ;被乘数加载到AL寄存器MUL [DATA2] ;乘数乘到AL寄存器MOV [PRODUCT], AL ;结果存回PRODUCT;程序结束```3. 程序调试:- 使用DEBUG工具对汇编程序进行调试,查找并修正错误。
微机原理实验报告一
实验报告一、实验目的1. 熟悉80C51单片微机汇编语言设计及编程技巧。
2. 掌握逻辑运算程序的设计方法。
3. 掌握求最小数和最大数程序的设计方法。
4. 掌握多字节无符号十进制数加、减法程序的设计二、实验器材1. Micetek仿真器一台2. 实验板一块三、实验内容1.逻辑运算:根据下列逻辑运算式,编写程序计算运算结果。
Y=A⊕B•C • D+A设:A=63H,B=82H,C=C5H,D=36H。
求Y=?2. 求最小数和最大数:10个无符号数连续存放在以20H为起始地址的RAM中,找出其中的最小值存入30H单元中,找出其中的最大值存入31H单元中。
3. 十进制加、减运算:286729+652430-752196=?在8051片内RAM的20H~22H中放入3字节被加数(低位在先)、23H~25H放入加数(低位在先)、26H~28H放入减数,结果存入2DH~2FH单元(低位在先)。
四、实验数据记录和分析1.逻辑运算:A.实验程序:ORG 0000HAJMP fxORG 0080Hfx:MOV A,#63HMOV R0,#36HORL A,R0CPL AMOV R1,AMOV A,#82HMOV R0,#0C5HANL A,R0CPL AMOV R0,#63HXRL A,R0CPL AANL A,R1EndB.程序list文件符号值类型AC = 00D6H CONST 常量ACC = 00E0H CONST 常量B = 00F0H CONST 常量CY = 00D7H CONST 常量DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA = 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量FX = 0080H CODE 标号IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP = 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量OV = 00D2H CONST 常量P = 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP = 0081H CONST 常量TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF0 = 008DH CONST 常量TF1 = 008FH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量公有符号: 57私有符号: 0C.实验思路:1.将A值给累加器2.将D值给R03.将A和D逻辑或,并把结果存入累加器A4.A和D或以后取非5.将A和D 取非以后的结果存到R1中6.将B值给累加器A7.将C值给R08.B与C逻辑与9.取反10.将A值存到R0中11.最后将逻辑运算前后的两个逻辑与2. 求最小数和最大数:A.实验程序:ORG 0000HAJMP MAINORG 0080HMAIN:MOV R0,#20HMOV A,@R0MOV R7,#09HMOV R2,AMOV R3,ALOOP:INC R0ACALL COMPDJNZ R7,LOOPAJMP DONECOMP:CLR CMOV A,@R0SUBB A,R2JC MINMOV A,@R0MOV R1,AMOV A,R3SUBB A,R1JC MAXRETMIN:MOV A,@R0MOV R2,ARETMAX:MOV A,R1MOV R3,ARETDONE:MOV 30H,R2MOV 31H,R3ENDB.实验生成list文件:符号值类型AC = 00D6H CONST 常量ACC = 00E0H CONST 常量B = 00F0H CONST 常量COMP = 008EH CODE 标号CY = 00D7H CONST 常量DONE = 00A0H CODE 标号DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA = 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量EX1 = 00AAH CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP = 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量LOOP = 0087H CODE 标号MAIN = 0080H CODE 标号MAX = 009DH CODE 标号MIN = 009AH CODE 标号OV = 00D2H CONST 常量P = 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SM0 = 009FH CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP = 0081H CONST 常量TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF0 = 008DH CONST 常量TF1 = 008FH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量公有符号: 62私有符号: 0C.实验思路1.将数据录入程序中,程序分主程序和子程序1.22.程序1寻找数据中得最小值3.程序2寻找数据中的最大值4将最大值和最小值放到制定的地址5.在比较大小环节采用冒泡法。
微机原理与接口技术实验报告及答案
微机原理与接口技术实验报告及答案微机实验答案实验三统计学生成绩设有20个学生成绩分别56、78、67、40、87、99、63、51、74、100,90,80,68、88、55、66、84、96、45、73分。
编写程序实现统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并分别存放在s5、s6、s7、s8、s9、s10单元中。
实验代码如下:data segmentscore db 56,78,67,40,87,99,63, 51,74,100,90,80,68,88,55,66,84, 96,45,73s5 db 0s6 db 0s7 db 0s8 db 0s9 db 0s10 db 0data endscode segmentassume cs: code, ds: data start: mov ax,datamov ds,axmov si,0mov cx,20lop1: cmp score[si],60jb step1cmp score[si],70jb step2cmp score[si],80jb step3cmp score[si],90jb step4cmp score[si],100jb step5inc [s10]jmp exitstep1:inc [s5]jmp exitstep2:inc [s6]jmp exitstep3:inc [s7]jmp exitstep4:inc [s8]jmp exitstep5:inc [s9]exit: inc siloop lop1mov al,s6 ; 显示s6,可用s5,s7, s8等替换(实验要求之思考题三)add al,48mov dl,almov ah,02int 21hmov ah,4chint 21h实验四查找字符实验内容试编写一个有主程序和子程序结构的程序模块。
主程序:要求从键盘接收一串字符并存于字节数组TABLE中,显示字符CHAR出现的次数。
微机原理实验报告
微机原理及接口技术实验报告班级:光094-2姓名:....学号:20091350429实验一熟悉宏汇编程序及debug一.实验目的1.学习并掌握汇编语言指令寻址方式2.熟悉在PC机上用DEBUG调试和运行汇编语言指令的过程。
二.实验内容根据给定寄存器内容及存储单元内容,运行给定指令,观察记录运行结果1、给定的寄存器内容及存储单元内容(DS)=2000H,(SI)=0002H,(BX)=0100H(20100H)=1H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H2、指令(1)M OV AX,1200H(2)M OV AX,BX(3)M OV AX,[1200H](4)M OV AX,[BX](5)M OV AX,1100H[BX](6)M OV AX,[BX][SI](7)M OV AX,1100H[BX][SI]四.调试步骤1.运行DEBUG。
2.用A命令汇编指令(1)3.按给定寄存器和存储单元内容修改寄存器和存储单元内容。
4.单步运行指令,查看结果5.重复上述步骤,调试指令(2)——(7)指令寻址方式源操作数有效地址源操作数物理地址指令运行结果(AX)1 立即寻址 0100 20100 12002 寄存器寻址 0103 20103 01003 直接寻址 1200 21200 4c2a4 寄存器间接寻址0100 20100 34125 寄存器相对寻址1200 21200 4c2a6 基址变址寻址 0102 20102 78567 相对基址变址寻址1202 21202 65b7 六.思考题1、汇编语言指令有哪些寻址方式?用于寻址的寄存器有哪些?立即数寻址、直接寻址,寄存器寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,基址变址相对寻址。
对于16位数据,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP; 对于8位数据,寄存器可以是AH,AL,BH,BL,CH,CL,DH,DL实验二寻址方式练习及多字节运算程序一.实验目的1.学习并掌握数据传送指令和算术运算指令2.熟悉在PC机上编辑、汇编、连接、调试与运行汇编语言程序的过程。