微机原理第三次实验报告
微机实验报告
微机实验报告第⼀次实验1.写出完成下列功能的指令序列(1)传送20H到AL寄存器MOV AL , 20H(2)将(AL)*2 MOV AL , 02H MUL AL (3)传送25H到BL寄存器MOV BL , 25H (4)(AL)*BL MUL BL问最后结果(AX)=?AX=0940H2.分别写出完成下列指令要求的指令(1)将BX的低4位清零AND BX , F0H(2)将AX的⾼4位置1 OR AX , F0H(3)将DX的低4位取反;XOR DX , 0FH(4)将CX的中间⼋位清零AND CX , 0FF0H(5)将AX中与BX中的对应位不相同的位均置1 XOR AX , BX3.上机运⾏下⾯指令序列,分析运⾏后(AX)=?mov cl , 8sar ax ,cldec axmov cx ,8mul cxax=210.9h4. 4.设DS=当前段地址,BX=0300H,SI=0002H,请⽤DEBUG的命令将存储器偏移地址300-304H连续单元装⼊0AH0BH0CH0DH0EH。
在DEBUG状态下送⼊下⾯的程序,并⽤单步执⾏的⽅法,分析每条指令原源地址的形成过程?当数据传送完毕时,AX中的内容是什么?8.编程:求两个数的平均值。
这两个数分别放在X单元和Y单元中,⽽平均值放在Z单元中。
即Z=(X+Y)/2 data segmentx db 2y db 6z db ?data endscode segmentassume cs:code, ds;datastart:mov ax, datamov ds,axmov al, xmov ah,0add al,ymov bl,2div blint 21hcode endsend start9.输⼊下⾯源程序,并对程序进⾏会变,连接,调式并说明程序的功能。
data segment number dw 0168hdata endscode segmentassume cs;code, ds: dataorg 0100hstart:mov ax, datamov ds, axmov dx,0mov bx, 0001hmov di, 8000hmov si, 0mov ax, numbermov cx, 16next;test ax, bxjz continueor dx, diinc sicontinue:ror di, 1mov ah,4chint 21hcode endsend start1.编写程序: 求1+2+3+…..+100的和data segment number db 01hdata endscode segmentassume cs:code , ds:datastart:mov ax , datamov ds , axmov ax , datamov bx , numbermov ax , 0mov cx , 64hnext:add ax ,bxinc bxloop nextmov ah , 4chint 21hcode endsend start2.在内存中tab为⾸的地⽅存有1-9的平⽅值,从键盘输⼊⼀个数(1-9),将该数存⼊X单元,⽴⽅值存⼊XXX单元中data segmenttab db 0,1,4,9,16,25,36,49,64,81x db 10dup(?)xxx db 10dup(?)data endscode segmentassume cs:code ,ds: datastart:mov ax ,datamov ds , ax mov ax , datamov cx ,09hnext:mov ah , 1int 21hand ah ,0fhmov bx ,ahmov si , offset tabmov sp , offset xmov di , offset xxxmov dx , byte ptr[bx+si]mov al, blmul dxmov [bx+di] ,axmov [sp+bx] , bxmov ah , 4chint 21hcode endsend start第⼆次实验顺序程序设计从键盘输⼊两个1位⼗进制数,求这两个数的和,并将结果显⽰在屏幕上data segment infor1 db 'please input the first data (<10):$'infor2 db 0ah,0dh,'please input the second data (<10):$'infor3 db 0ah,0dh,'the result is:$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset infor1mov ah,9int 21hmov ah,1int 21hand al,0fhmov ah,00000000000000000000mov bl,almov dx,offset infor2int 21hmov ah,1int 21hand ax,000fhadd al,blaaaor ax,3030hpush axmov dx,offset infor3 mov ah,9int 21hpop axmov dl,ahpush axmov ah,2int 21hpop axmov dl,almov ah,2int 21hmov ah,4chint 21hcode endsend startresult db 0ah,0dh,'cube result is :$' data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset numbermov ah,9int 21hmov ah,1int 21hand ax,000fhmov bx,axmul blmul blmov cl,64hdiv clor al,30hpush axmov dx,offset resultmov ah,9int 21hpop axmov dl,alpush axmov ah,2int 21hpop axmov cl,0ahmov al,ahmov ah,0div clor ax,3030hpush axmov ah,2int 21hpop axmov dl,ahmov ah,2int 21hmov ah,4chint 21hcode endsend start分⽀程序设计1.某程序可从键盘接收命令(0-5),分别专项6个⼦程序,⼦程序⼊⼝地址分别为p0-p5,编制程序,⽤跳转表实现分⽀结构程序设计,记录实验结果data segmentmessage db 'please input key (0-5):$'crmessage db 0ah,0dh,'$'errormessage db 'you hit error key !',0ah,0dhdb 'please try again(0-5):$'message0 db 'you hit the key 0',0ah,0dh,'$'message1 db 'you hit the key 1',0ah,0dh,'$'message2 db 'you hit the key 2',0ah,0dh,'$'message3 db 'you hit the key 3',0ah,0dh,'$'message4 db 'you hit the key 4',0ah,0dh,'$'message5 db 'you hit the key 5',0ah,0dh,'$'code segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov ah,9lea dx,messageint 21htryagain:mov ah,1int 21hmov bl,almov ah,9mov dx,offset crmessage int 21hcmp bl,'0'jz key0cmp bl,'1'jz key1cmp bl,'2'jz key2cmp bl,'3'jz key3cmp bl,'4'jz key4cmp bl,'5'jz key5error:mov ah,9mov dx,offset errormessage int 21hjmp tryagainkey0:lea dx,message0mov ah,9int 21hjmp exitkey1:lea dx,message1 mov ah,9int 21hjmp exitkey2:lea dx,message2 mov ah,9int 21hjmp exitkey3:lea dx,message3 mov ah,9int 21hjmp exitkey4:lea dx,message4 mov ah,9int 21hjmp exitkey5:lea dx,message5 mov ah,9int 21hexit:mov ah,4chint 21hcode endsend start第三次实验循环程序设计1.从⾃然数1开始累加,直到累加和⼤于1000为⽌,统计被累加的⾃然数的个数,并把统计的个数送⼊N单元,把累加和送⼊SUM单元。
微机原理实训报告完整
资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载微机原理实训报告完整地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
二、设计的原始资料及依据(1)查阅微机原理及应用、汇编语言程序设计等书籍;(2)掌握字符串的输入,输出和排序。
三、设计的主要内容及要求内容:从PC键盘输入5个字符串,排序及显示要求1)输入5个字符串。
2)对输入的字符串进行排序并正确显示。
四、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、总结、参考文献。
五、设计完成后应提交成果的种类、数量、质量等方面的要求;提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。
六、时间进度安排;沈阳工程学院微机原理及汇编语言程序设计程设计成绩评定表系(部):信息学院班级:学生姓名:目录TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc359478386" 第1章绪论 PAGEREF_Toc359478386 \h 1HYPERLINK \l "_Toc359478387" 1.1 背景 PAGEREF_Toc359478387 \h 1HYPERLINK \l "_Toc359478388" 1.2 设计目的与任务 PAGEREF _Toc359478388 \h 1HYPERLINK \l "_Toc359478389" 1.2.1 本课程设计的目的 PAGEREF _Toc359478389 \h 1HYPERLINK \l "_Toc359478390" 1.2.2 本课程设计的任务 PAGEREF _Toc359478390 \h 1HYPERLINK \l "_Toc359478391" 第2章汇编语言的运行环境及运行步骤 PAGEREF _Toc359478391 \h 2HYPERLINK \l "_Toc359478392" 2.1 汇编语言的起源 PAGEREF _Toc359478392 \h 2HYPERLINK \l "_Toc359478393" 2.2 汇编语言的特点 PAGEREF _Toc359478393 \h 2HYPERLINK \l "_Toc359478394" 2.2.1 能够保持机器语言的一致性,直接、简捷 PAGEREF _Toc359478394 \h 2HYPERLINK \l "_Toc359478395" 2.2.2 目标代码简短,占用内存少,执行速度快 PAGEREF _Toc359478395 \h 2HYPERLINK \l "_Toc359478396" 2.2.3 汇编语言是面向机器的PAGEREF _Toc359478396 \h 2HYPERLINK \l "_Toc359478397" 2.2.4 难于从汇编语言代码上理解程序设计意图,可维护性差 PAGEREF _Toc359478397 \h 2HYPERLINK \l "_Toc359478398" 2.2.5 高速度和高效率 PAGEREF _Toc359478398 \h 2HYPERLINK \l "_Toc359478399" 2.3 汇编语言的运行环境 PAGEREF _Toc359478399 \h 3HYPERLINK \l "_Toc359478400" 2.4 汇编语言的运行步骤 PAGEREF _Toc359478400 \h 3HYPERLINK \l "_Toc359478401" 第3章总体设计思路 PAGEREF _Toc359478401 \h 6HYPERLINK \l "_Toc359478402" 3.1 功能设计分析 PAGEREF_Toc359478402 \h 6HYPERLINK \l "_Toc359478403" 3.1.1 设计思路分析 PAGEREF _Toc359478403 \h 6HYPERLINK \l "_Toc359478404" 3.1.2 系统功能分析: PAGEREF _Toc359478404 \h 6HYPERLINK \l "_Toc359478405" 3.2 总体设计分析 PAGEREF_Toc359478405 \h 6HYPERLINK \l "_Toc359478406" 3.2.1 系统功能模块图 PAGEREF _Toc359478406 \h 6HYPERLINK \l "_Toc359478407" 3.2.2 具体设计方案 PAGEREF _Toc359478407 \h 6HYPERLINK \l "_Toc359478408" 第4章程序实现 PAGEREF_Toc359478408 \h 8HYPERLINK \l "_Toc359478409" 4.1 运行程序 PAGEREF_Toc359478409 \h 8HYPERLINK \l "_Toc359478410" 4.1.1 单步运行 PAGEREF_Toc359478410 \h 8HYPERLINK \l "_Toc359478411" 4.1.2 暂停执行程序 PAGEREF _Toc359478411 \h 8HYPERLINK \l "_Toc359478412" 4.1.3 连续运行程序 PAGEREF _Toc359478412 \h 8HYPERLINK \l "_Toc359478413" 4.2 各个模块程序流程图设计PAGEREF _Toc359478413 \h 9HYPERLINK \l "_Toc359478414" 4.2.1 第一模块输入字符串PAGEREF _Toc359478414 \h 9HYPERLINK \l "_Toc359478415" 4.2.2 第二模块字符串排序PAGEREF _Toc359478415 \h 9HYPERLINK \l "_Toc359478416" 4.2.3 第三模块输出字符串PAGEREF _Toc359478416 \h 10HYPERLINK \l "_Toc359478417" 第5章遇到问题及解决方法PAGEREF _Toc359478417 \h 12HYPERLINK \l "_Toc359478418" 5.1 所遇到的问题 PAGEREF_Toc359478418 \h 12HYPERLINK \l "_Toc359478419" 5.2 对应问题的解决方法 PAGEREF _Toc359478419 \h 12HYPERLINK \l "_Toc359478420" 总结 PAGEREF_Toc359478420 \h 13HYPERLINK \l "_Toc359478421" 致谢 PAGEREF_Toc359478421 \h 14HYPERLINK \l "_Toc359478422" 参考文献 PAGEREF_Toc359478422 \h 15HYPERLINK \l "_Toc359478423" 附录 PAGEREF_Toc359478423 \h 16HYPERLINK \l "_Toc359478424" 源程序代码: PAGEREF_Toc359478424 \h 16第1章绪论1.1 背景计算机技术作为信息化的核心技术受到全社会的普遍重视。
微机原理第三次实验报告
实验三DOS中断调用实验实验报告健行理工1402班陈丽红 201424450202一、实验目的掌握字符和数据的显示方法。
二、实验内容先显示信息“INPUTSTRING,THE END FLAG IS $”再接收字符。
如为0-9,则计数器加1,并显示计数,如为非数字,则直接显示,但不计数。
三、程序框图开始段寄存器和堆栈段初始化数字字符计数器清0回车换行显示提示信息接收键入字符并显示是$字符调用QUI,返回DOS结束是回车键是0-9计数器BX加1,保存计数器的值后将其转化为ASCII码回车换行显示计数结果回车换行调用DISP,显示字符YNYYNN四、程序说明本次实验重点在于了解中断调用的步骤:(1)准备入口参数;(2)功能号送AH;(3)执行INT n命令,熟练掌握向量号21H的部分常用功能调用。
程序设计时通过对输入的字符进行判断,根据判断结果进入不同的子程序段运行,显示运行结果。
五、源程序清单与执行结果5.1 源程序清单DATA SEGMENT ;定义数据段,DATA为D1 DB 'INPUTSTRING, THE LAST FLAG IS', 0DH, 0AH,'$' 段名,将信息存放在D2 DB 0DH, 0AH, '$' D1,D2中DATA ENDSSTACK SEGMENT STACK ;定义堆栈段DB 100 DUP(?)STACK ENDSCODE SEGMENT ;说明代码段、数据段、堆栈段 ASSUME CS:CODE,DS:DATA,SS:STACKBG: MOV AX,DATAMOV DS, AX ;给DS赋段值MOV BX, 0 ;数字字符计数器BX清0JMP L1 ;跳转至L1QUI: MOV AH,4CH ;返回DOSINT 21HDISP: MOV DX,OFFSET D2 ;输出回车换行MOV AH,9HINT 21HMOV AH,2H ;显示AL中的字符内容MOV DL,ALINT 21HL1: MOV DX,OFFSET D2 ;输出回车换行MOV AH,9HINT 21HMOV DX,OFFSET D1 ;输出“INPUTSTRING,THE END FLAG IS” MOV AH,9HINT 21HMOV AH,1H ;键盘输入并显示INT 21HCMP AL,'$' ;判断输入字符是否为'$'JE QUI ;是则调用QUI,返回DOSCMP AL,0DH ;判断输入字符是否为回车,是则输出 JNE L2 回车换行,进入下一次L1循环,不是MOV DX,OFFSET D2 则跳转至L2MOV AH,9HINT 21HJMP L1L2: CMP AL,'9' ;判断输入字符是否为0-9,是则计数 JA DISP 器BX加1,不是则跳转至DISPCMP AL,'0'JB DISPINC BXPUSH BX ;将BX的内容压入堆栈,保存ADD BX,30H ;将BX中的数值转化为ASCII码MOV DX,OFFSET D2 ;输出换行MOV AH,9HINT 21HMOV AH,2H ;显示计数MOV DL,BLINT 21HPOP BX ;弹出BX的内容JMP L1CODE ENDSEND BG5.2 执行结果截图(1)接收字符为0-9,计数器加1,并显示计数。
微机原理实验三实验报告
实验3. 循环程序设计一、实验目的⒈掌握移位指令的使用方法。
⒉学会循环结构程序的编程方法。
⒊利用DEBUG调试程序查看循环程序循环过程中CS和IP的变化情况。
二、实验要求⒈编写程序并上机调试,记录运行结果。
⒉用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。
)⒊注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对循环程序的概念的理解。
三、实验内容⒉编写统计15个学生数学学习成绩程序。
要求:分别统计出低于60分,60-69分,70-79分,80-89分,90-100分的人数,并存放到S5,S6,S7,S8,S9,S10对应内存单元中。
源程序代码;DATA SEGMENTDATA1 DB 55,60,65,88,67,70,75,80,77,85,90,66,95,53,100DATA2 DB 5 DUP(?)DATA ENDS;CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,15LEA SI,DATA1LEA DI,DATA2AGAIN:MOV AL,[SI]CMP AL,90JB NEXT1INC BYTE PTR[DI]JMP NEXT0NEXT1:CMP AL,80JB NEXT2INC BYTE PTR[DI+1]JMP NEXT0NEXT2:CMP AL,70JB NEXT3INC BYTE PTR[DI+2]JMP NEXT0NEXT3:CMP AL,60JB NEXT4INC BYTE PTR[DI+3]JMP NEXT0NEXT4:INC BYTE PTR[DI+4]NEXT0:INC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START程序运行结果截图:四、实验总结本次实验掌握移位指令的使用方法。
微机原理实验报告
校区实验报告课程名称____________________________ 专业班级_____________________________ 学生及学号____________________________指导教师____________________________实验地点————————————————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 单元中。
《微机原理与应用》实验报告
《微机原理与应用》实验报告课程名称:微机原理与应用实验类型:验证性实验项目名称:实验一:平台仿真一、实验目的1.熟悉protues 仿真平台的使用2.掌握 protues ISIS 下8086的仿真流程二、实验内容和原理1、protues ISIS 编辑环境及基本使用2、元件的查找、选取与使用3、连线、标注4、编辑电路原理图5、设置外部代码编译器6、仿真调试三、实验仪器及材料proteus ISIS 7.8四、实验过程1.MASM32配置2.新建工程3.搭建电路图,编写源代码课程名称:微机原理与应用实验类型:验证性实验项目名称:实验二:基本I/O应用一、实验目的1.掌握I/O接口的设计方法;2.掌握Proteus的使用方法3.汇编程序设计实战二、实验实现功能实现开关闭合LED2,LED3,LED6,LED7亮否则LED0,LED1,LED3,LED4亮要求: 1.译码线为A4,A5,A7,A62.74LS245片选信号为IOS33.74LS373片选信号为IOS44.开关接74LS245的B4口三、实验仪器及材料proteus ISIS 7.8四、实验过程1、电路图主电路图译码子电路图如下2、程序代码CODE SEGMENT PUBLIC 'CODE'ASSUME CS:CODESTART:MOV BL,11001100B ;设置LED灯状态L: MOV DX,030H ;将74LS245的地址送到DXIN AL, DX ;读取开关状态并将状态存入ALTEST AL,10H ;检测开关是否闭合JZ N ;若开关闭合则跳转到NNOT BL ;将BL反向,改变LED状态N: MOV AL,BL ;将LED状态存入ALMOV DX,080H ;将74LS373的地址送到DXOUT DX,AL ;将AL的数据写到74LS373的相应端口JMP START ;跳转到START使程序循环CODE ENDSEND START3、程序流程图4、仿真结果如图。
微机原理实验报告三
微型计算机原理与接口技术实验报告一、实验内容实验3 分支结构程序设计实验题目编程实现三分支的符号函数;编程实现将正数N 插入由正数组成的数组ARY 中。
内容提要掌握分支程序的设计,观察通用寄存器、标志寄存器的变化、监测分支点。
二、实验的源代码(.asm文件内容)第一部分——编程实现三分支的符号函数程序如下:DATAS SEGMENTX DB-3Y DB?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV AL,XCMP AL,0JGE BIGERMOV AL,0FFHMOV Y,ALJMP NEXTBIGER:JE EQULMOV AL,1MOV Y,ALJMP NEXTEQUL:MOV Y,ALNEXT: MOV AH,4CHINT 21HCODES ENDSEND START第二部分:编程实现将正数N 插入由正数组成的数组ARY中程序如下:DATAS SEGMENTX DW?ARY_HEAD DW 2,6,8,13,21,47,53,66,90ARY_END DW 125N DW 18DATAS ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATAS START: PUSH DSXOR AX,AXPUSH AXMOV AX,DATASMOV DS,AXMOV AX,NMOV ARY_HEAD-2,0FFFFHMOV SI,0 COMPARE:CMP ARY_END[SI],AXJLE INSERTMOV BX,ARY_END[SI]MOV ARY_END[SI+2],BXSUB SI,2JMP SHORT COMPARE INSERT: MOV ARY_END[SI+2],AX RETMAIN ENDPCODE ENDSEND START三、实验的(显示)结果Press any key to continue第一部分CV调试结果如下:第二部分CV调试结果如下:四、实验(调试)心得第一部分:调试中出现的问题及解决办法:本来程序中使用的返回DOS的方法是使用程序结束中断INT 20H 指令,但不能正确运行,可能是计算机也可能是软件的问题,然后又修改程序,改使用INT 21H 的4CH号功能调用,这样修改完成后程序便可以正确运行了。
微机原理实验报告
实验一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将两个寄存器的内容进行交换时,必须有一个中间寄存器才能进行内容的交换,如果用堆栈做为中间存储单元,必须遵循先进后出的原则。
微机原理与接口技术实验3报告
微机原理与接口技术实验报告实验三实验名称:数码管显示实验实验代码:代码一:数码管动态显示0-9;Io-8.asm;数码管显示示例程序1;动态显示0-9IOY0 EQU 3000H ;片选IOY0对应的端口始地址DA TA1 SEGMENT;定义数码管显示0-9的值NUM DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H DA TA1 ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA1START:;载入数据段MOV AX,DATA1MOV DS,AXMOV DX,IOY0LEA SI,NUMMOV CX,10XOR AX,AXNEXT:MOV AL,[SI] ;低八位确定要显示的数值MOV AH,1FH ;高八位确定选择的数码管OUT DX,AX ;将值输出到外设CALL DALL YINC SI ;显示下一数值LOOP NEXTJMP STARTDALL Y PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,0FFFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL Y ENDPCODE ENDSEND START运行结果:六位数码管动态显示0-9代码二:数码管动态显示0-99;数码管动态显示0-99IOY0 EQU 3000H ;片选IOY0对应的端口始地址DA TA1 SEGMENT;定义数码管显示0-9的值NUM DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H DA TA1 ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA1START:;载入数据段MOV AX,DATA1MOV DX,IOY0LEA SI,NUMLEA DI,NUMMOV CX,10XOR AX,AXMOV CX,100MOV BX,0ADD DI,BXNEXT1:;---------SW----;MOV CX,10;----------GW-------;NEXT:PUSH CXMOV CX ,0FFHNEXT3:MOV AL,[SI] ;低八位确定要显示的数值MOV AH,2FH ;高八位确定选择的数码管OUT DX,AXCALL DALL YMOV AL,[DI]MOV AH,1FHOUT DX,AXCALL DALL YLOOP NEXT3INC SIPOP CX;JMP MYLOOP ;显示下一数值LOOP NEXTINC DILEA SI,NUMJMP NEXT1DALL Y PROC NEAR ;软件延时子程序PUSH CXMOV CX,0FFHD1: MOV AX,0FFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL Y ENDPCODE ENDSEND START运行结果:数码管后两位动态显示0-99。
微机原理综合实验报告
微机原理综合实验报告随着计算机技术的不断发展,微机已经成为了我们日常工作和生活中不可或缺的一部分。
为了更好地了解微机的工作原理和实践应用,我们进行了微机原理的综合实验,本文将对此次实验进行详细的讲解和总结。
一、实验目的本次实验的主要目的是通过搭建计算机系统的全部硬件及连接,熟悉和掌握微机的工作原理和实际应用,实践操作模拟简单的计算机应用程序等。
二、实验步骤1.准备工作:搭建计算机实验系统所需的硬件和软件,包括主板、处理器、硬盘、内存、显示器等,同时,将各部件连接起来。
2.开机自检:按下计算机开机键后进行自检,检查各部件是否正常工作。
3.进入BIOS:进入BIOS设置,为系统配置提供支持。
4.安装操作系统:安装Windows操作系统5.应用程序:安装并应用简单的计算机应用程序,如表格制作、文档编辑等。
三、实验结果分析通过本次实验,我们深入了解了微机的硬件构成和软件运行原理,加深了对微机工作原理的认识。
在实践操作中,我们对计算机系统在实际应用中的硬件和软件环境有了深刻的认识和了解。
四、实验中遇到的问题及解决方法在实验中,我们遇到了一些问题,如计算机开机时无法启动、操作系统无法正常安装、硬件连接不正确等。
这些问题的出现主要是由于我们操作时没有细心和认真,没有按照实验指导书的步骤操作。
针对这些问题,我们仔细检查操作过程中的每一个步骤,重新进行操作,直至问题得到解决。
五、结论通过本次实验,我们深刻了解了微机的硬件构成和软件运行原理,了解了微机在实际应用中的硬件和软件环境。
同时,我们还掌握了微机应用的基本技能,如软件安装、简单文件的制作和编辑等。
通过实验的过程,我们深入体验了计算机系统的基本构成及实践应用,并发现并解决了其中存在的问题和疑问,从而加深了对计算机系统的理解和认识,为今后我们的进一步学习和实践打下了坚实的基础。
微机原理三级项目报告
项目名称:汽车轮毂生产专用夹具控制系统班级:机械装备1班姓名:李罗金学号:130101010076项目指导教师(任课教师、实验室教师):项目完成时间:2016-5-13目录一、设计内容及要求 (2)二、设计思路 (2)三、实验设备 (2)四、项目实现的功能 (3)五、项目接线图 (4)六、项目程序 (7)七、实验结果 (14)八、程序结果及分析 (15)九、项目不足 (15)十、项目总结 (15)参考文献 (15)一、设计内容及要求汽车轮毂生产的最后一序是数控车削,需要使用专用夹具,该夹具使用液压装置控制,中心定位方式。
具体动作过程是:机械手上料——液压定位装置启动——中心定位(使用光电传感器检测中心孔定位是否准确)——若定为满足要求驱动液压夹紧装置夹紧工件(使用压力传感器检测是否达到工作压力)——夹紧后启动车床主轴开始工作。
要求具有计件功能,能够记录每班的生产件数并使用数码管显示二、设计思路1数控车削过程按要求大致分为5个部分,即上料,定位,加紧,车削,计数。
2 其中有两个检测点,即中心定位检测和加紧压力检测,不符合检测标准应显示警告,提示修正。
必须满足检测要求后,方能进行下一步动作。
3 车削加工结束后,要有计数设备,由8155芯片输出。
计数总量999件。
三、实验设备实验设备设备数量功用8088CPU8255芯片 1 控制数码管,步进电机,直流电机8155A芯片 1 接收开关数据,控制138译码器8253A芯片 1 控制蜂鸣器不同频率报警138译码管 1 控制发光二极管开关 2 模拟是否定位和夹紧发光二极管8 显示工作流程一至六号灯亮,定位夹紧,八七号灯亮数码管8 显示计数功能蜂鸣器 1 报警直流电机 1 模拟切削过程步进电机 1 模拟上料,定位,夹紧过程导线若干端口控制对象端口控制对象端口地址8255端口A 7段数码管的位选0F0008255端口B 7段数码管的码选0F0018255端口C 直流电机,步进电机0F0028255控口端CS1 0F0038155端口A 138译码器0e0018155端口B LED 0e0028155控口端CS2 0e000138译码器发光二极管8253计数器1 8253计数器2 0b0008253计数器2 蜂鸣器0b0018253控制端cs5 0b003四、项目实现的功能1.计数功能,8255pa口控制7段数码管的位选,pb口控制8255的码选2.定位检测,如果定位满足则进行下一道工序,否则led灯8亮且蜂鸣器以2赫兹频率报警,步进电机工作模拟继续定位。
微机原理实验总结(共5篇)
微机原理实验总结(共5篇)第一篇:微机原理实验总结微机原理实验总结不知不觉,微机原理与接口技术实验课程已经结束了。
回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很重要的,因为它是和机器语言最接近的了,如果用它来编程序的话,会比用其它高级语言要快得多。
本学期我们在老师的带领下,进行了微机原理实验六到十这五组实验。
它们分别是:实验六8255 PA口控制PB口实验目的掌握单片机系统中扩展外围芯片的方法,了解8255 芯片的结构及编程方法。
实验内容用 8255 PA 口作开关量输入口,PB 口作输出口。
实验步骤1、用8 芯线将8 255 PA口接至开关Kl~K8,PB口接至发光二极管L1~L8;2、运行程序 HW06.ASM,拨动开关K1~K8,观察L1~L8发光二极管是否对应点亮。
实验七8255控制交通灯实验目的进一步了解8 255 芯片的结构及编程方法,学习模拟交通控制的实现方法。
实验内容用8255 做输出口,控制六个发光二极管燃灭,模拟交通灯管理。
实验步骤1、用双头线将8 255 PA0~PA2 口接至发光二极管L3~L1,PA3~PA5口接至发光二极管L7~L5;2、执行程序HW07.ASM,初始态为四个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
实验八简单I /O口扩展实验目的学习单片机系统中扩展简单I/O 口的方法;学习数据输入输出程序的编制方法。
实验内容利用74LS244 作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。
北京理工大学微机原理硬件三次实验综合报告
实验二 8255 并行接口实验
实验内容 8255 的 A 口作为输入口,与逻辑电平开关相连。8255 的 B 口作为输出口,与发 光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。 二,实验目的 (1)掌握 8255 的工作原理。 (2)掌握编写 8255 并行接口初始化及编程实现的方法。 三,实验仪器 微机实验教学系统实验箱、8086CPU 模块 四,实验步骤 连线 8255 的 PA0—PA7 分别与逻辑电平开关的 K1—K8 相连 PB0—PB7 分别与发光二极管电路的 LED1—LED8 相连 CS0 与 8255 的片选 CS8255 相连 其它线路均已连好 具体如图所示:
ENDSTART 实验现象:CS273 的 00 与 LED0 相连,01 与 LED1 相连,02 与 LED2 相连,依次 下去, 直至 07 与 LED7 相连。 每按单脉冲发生器一次产生一次中断申请, 由于 IR0 的优先级比 IR1 低,故先响应 IR1,后响应 IR0,观察到低 4 位的 LED 灯先点亮或 熄灭,高 4 位的 LED 灯后点亮或熄灭。 实验心得 实验让我对 8259A 的内部寄存器的功能有了更深的认识,掌握了 8259A 的初始 化步骤及其工作方式的选择, 以及中断服务程序的编写。 使用实验箱和编译软件, 使我们在编程和动手操作方面都有了很大的提高,软硬件的结合,使我们更加透 彻的理解了所学知识。
DDBUS
Vcc
DD0 DD1 DD2 DD3 DD4 DD5 DD6 DD7 A1 3 Vcc 7 4LS3 2 Vcc IOR D IOWR INT INTA
11 10 9 8 7 6 5 4 27 1 3 2 16 15 D6 D7 A0 CS RD WR SP/EN INT INTA 8 25 9
微机原理实验报告三
软件实验三实验内容从键盘键入字母数字串,统计各类字符个数并以十进制形式在显示器上显示出来。
显示格式要求1、在显示器上显示提示信息:Pleace input any digital and letter string2、在显示器上显示The string you inputed is:XXXXXXXXXX3、在显示器上分行显示十进制统计结果The Nembers of Digital is:XXThe Nembers of Capital Letters is:XXThe Nembers of Small Letters is:XX4、在显示器上显示提示信息Are you continue?(Y/N)按Y继续1~3的统计显示过程,按N或其它字符均退出统计返回DOS。
这里建议:不区分输入Y或N的大小写,均为有效。
程序要求:1、提示字符串的显示功能用宏指令INOUT实现2、回车换行用CRLF宏指令实现3、单个字符输入用INPUT宏指令实现4、分类统计功能由子程序TONGJI实现5、二进制转十进制并显示功能由子程序BTOD 实现CRLF MACROMOV DL,0DHMOV AH,2INT 21HMOV DL,10MOV AH,2INT 21HENDMINPUT MACROMOV AH,1INT 21HENDMINOUT MACRO X ,YMOV AH,XLEA DX,YINT 21HENDMDATA SEGMENTSHUZI DB ?DAXIE DB ?XIAOXIE DB ?STRIN DB 50,51 DUP(?),'$'TISHIA DB 'Please input any digital and letter string','$' TISHIB DB 'The string you input is:','$'TISHIC DB 'Are you continue ?(Y/N)','$'TISHI1 DB 'The Number of Digital is:','$'TISHI2 DB 'The Nnmber of Capital Letters is:','$' TISHI3 DB 'The Number of Small Letters is:','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXINOUT 9,TISHIACRLFINOUT 10,STRINMOV BL,[STRIN+1]MOV BH,0ADD BX,2MOV STRIN[BX],'$'INOUT 9,TISHIBCRLFINOUT 9, STRIN+2CRLFCALL TONGJIINOUT 9,TISHI1MOV BL,SHUZICALL BTODCRLFINOUT 9,TISHI2MOV BL,DAXIECALL BTODCRLFINOUT 9,TISHI3MOV BL,XIAOXIECALL BTODCRLFK1: INOUT 9,TISHICINPUTCRLFCMP AL,'Y'JMP STARTNT1: CMP AL,'y' JNE NT2JMP STARTNT2:CMP AL,'N'JE K2CMP AL,'n'JE K2JMP K2K2: MOV AH,4CH INT 21HTONGJI PROC NEAR MOV AX, DATA MOV DS, AXXOR AX, AXMOV SHUZI, AL MOV DAXIE, AL MOV XIAOXIE, AL LEA SI, [STRIN+2] MOV CL, [STRIN+1] CLDNEXT: LODSB CMP AL, 30HJB OTHERCMP AL, 39HJA BIJIAO1INC SHUZIJMP OTHER BIJIAO1: CMP AL, 'A' JB OTHERCMP AL, 'Z'JA BIJIAO2INC DAXIEJMP OTHER BIJIAO2: CMP AL, 'a' JB OTHERCMP AL, 'z'JA OTHERINC XIAOXIE OTHER: LOOP NEXT RETTONGJI ENDP BTOD PROC NEARL0: CMP BL,0AH JAE L1JMP L2L1: SUB BL,0AH INC BHJMP L0L2:ADD BL,30H ADD BH,30H MOV DL,BH MOV AH,02H INT 21HMOV DL,BL MOV AH,02H INT 21HRETBTOD ENDP CODE ENDS END START。
微机原理实验报告3
微机原理实验报告实验三七段数码管显示一、实验目的掌握接口芯片的编址方法,掌握8255的初始化设置,及数码管显示原理,掌握段控及位控的概念。
二、实验内容连接地址译码器与8255的连线及8255与数码管的连线;在数据段中存放0到9的字形码;从微机键盘输入2个数字的ASCII码,在输入过程中检查如非数字键则重新输入;然后将输入的ASCII码变成相应的数字,再利用换码指令XLAT查表得到相应的字形码;将字形码送到8255输出口所接的数码管上显示。
三、实验原理图四、实验流程图定义堆栈段、数据段定义代码段,写主函数返回DOS开始输入1号数字并转换成BCD 码存入输入2号数字并转换成BCD 码存入找到1号数字对应的字符并转换输出找到2号数字对应的字符并转换输出是否有按键按下INT21H 6号功能YN五、实验结论数码管能正确显示数字,调节DELAY 函数中数值可以调整延迟时间,得到不同显示效果。
六、实验心得学习使用XLAT ,同时可以不使用此方法,利用偏移地址的方法转换字符。
学习使用了INT 21H 6号功能,判断按键是否按下。
学习使用了实验箱及正确的连线。
学习分辨简易非简易连线方法。
附录:程序清单INPORT_1 EQU 0EF00H-280H+28BHINPORT_A EQU 0EF00H-280H+288HINPORT_C EQU 0EF00H-280H+28AHSTACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTTABL DB 3FH,06H,5BH,4FH,6BH,6DH,7DH,07H,7FH,6FH DIGIT DB 2 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROCMOV AX,DATAMOV DS,AXLEA BX,DIGITCALL KEYINAND AL,0FHMOV [BX],ALINC BXCALL KEYINAND AL,0FHMOV [BX],ALMOV DX,INPORT_1MOV AL,10001010BOUT DX,ALDISP: MOV DX,INPORT_ALEA BX,DIGITMOV AL,[BX]LEA BX,TABLEXLAT TABLEOUT DX,ALMOV DX,INPORT_CMOV AL,10BOUT DX,ALCALL DELAYINC BXMOV DX,INPORT_ALEA BX,DIGITMOV AL,[BX]LEA BX,TABLXLAT TABLOUT DX,ALMOV DX,INPORT_CMOV AL,01BOUT DX,ALCALL DELAYMOV AH,6MOV DL,0FFHINT 21HJZ DISPMOV AX,4C00HINT 21H MAIN ENDPKEYIN PROC INPUT: MOV AH,8INT 21HCMP AL,30HJB INPUTCMP AL,39HJA INPUTMOV DL,ALMOV AH,2INT 21HRETKEYIN ENDPDELAY PROCPUSH DIPUSH CXMOV DI,0FFFHMOV CX,0 NEXT1: LOOP NEXT1DEC DIJNZ NEXT1POP CXPOP DIRETDELAY ENDPCODE ENDSEND MAIN。
北邮 微机原理实验报告
北邮微机原理实验报告北邮微机原理实验报告引言:微机原理是计算机科学与技术专业的一门重要课程,通过学习和实践,我们可以深入了解计算机的组成结构和工作原理。
本次实验旨在通过对北邮微机原理实验的探索,加深对计算机硬件和软件的理解,并提升我们的实践能力。
一、实验目的本次实验的目的是熟悉计算机的硬件组成和工作原理,并通过实践操作加深对微机原理的理解。
具体包括以下几个方面:1. 熟悉计算机的硬件组成,包括中央处理器(CPU)、内存、硬盘等;2. 掌握计算机的启动过程和操作系统的加载;3. 理解计算机的指令集和指令执行过程;4. 学习计算机的输入输出设备和外部接口。
二、实验过程1. 实验一:计算机硬件的组装与连接在本实验中,我们需要将计算机的各个硬件组件进行正确的连接和组装。
首先,我们需要将主板与CPU、内存、显卡等硬件设备进行连接。
其次,我们需要将硬盘、光驱等存储设备与主板进行连接。
最后,我们需要将键盘、鼠标、显示器等外部设备与计算机进行连接。
通过这一步骤,我们可以了解计算机硬件的组成结构,并掌握正确的连接方式。
2. 实验二:计算机的启动过程和操作系统的加载在本实验中,我们需要了解计算机的启动过程和操作系统的加载过程。
首先,我们需要按下电源按钮,启动计算机。
然后,计算机会进行自检和硬件初始化,并加载操作系统。
在这个过程中,我们可以观察到计算机的启动画面和加载过程。
通过这一步骤,我们可以深入了解计算机的启动过程和操作系统的加载机制。
3. 实验三:计算机的指令集和指令执行过程在本实验中,我们需要学习计算机的指令集和指令执行过程。
首先,我们需要了解不同类型的指令,包括算术指令、逻辑指令、数据传输指令等。
然后,我们需要通过编写简单的汇编语言程序,来实现对数据的处理和操作。
在这个过程中,我们可以观察到指令的执行过程和结果。
通过这一步骤,我们可以深入理解计算机的指令集和指令执行过程。
4. 实验四:计算机的输入输出设备和外部接口在本实验中,我们需要学习计算机的输入输出设备和外部接口。
微机原理第三次实验报告
实验三串口通信实验一、实验目的与要求利用开发板的串口仿真功能,掌握串口通信的编程方法。
实验要求:(1)利用串行口向PC机发送字符“0x55”,利用串口调试软件在计算机端观察接收到的数据是否与预期一致。
(2)利用串行口向PC机发送字符串,利用串口调试软件在计算机端观察接收到的数据是否与预期一致(3)观察分析参考程序3,利用开发板接收PC机发送过来的16进制数据并用数码管显示。
(4)掌握实验基础内容后根据参考源程序进行修改和拓展,自行设计程序目标并编程验证,比如修改发送程序的内容,实现由上位机控制数码管显示内容等。
二、实验注意事项1、启动KEIL软件,选择菜单“工程\新建工程”以建立工程(扩展名为.uv2,如T2a.uv2)。
2、选择菜单“文件\新文件”以建立一个新的文本编辑窗口,在窗口中输入参考源程序1并保存(扩展名为.asm),如test2a.asm,然后将其加入到源程序组1中。
3、在工程菜单的选项“目标1属性”中设置相应的选项,包括“输出\产生hex 文件”选项以便汇编生成HEX代码供编程器使用,在“调试\使用KeilMonitor-51 Driver”的设置中选择相应的串口号。
4、使用“工程”中的“编译全部文件”完成相应的文件编译,如果程序格式正确将生成相应HEX代码文件,如T2a.hex。
如果提示有编译错误请自行修改源程序然后再重新编译。
5、用单根连线将P1.0(JP44)连接到8路指示灯部分(JP32)的LED0,将P1.6、P1.7(JP44)分别连接到JP37的K01、K02。
6、完成仿真器与计算机之间的连线并通电。
7、在KEIL软件中启动“调试\开启仿真模式”,然后用“运行”命令实现全速运行的仿真。
8、观察实验现象并分别依次按下K01、K02,观察并记录实验现象然后在KEIL 软件中启动“中断运行-调试(debug)\关闭仿真模式”退出仿真,选择“工程\关闭工程”可关闭当前工程。
9、参考步骤1-4完成参考源程序2的建立与输入,如新项目T2b.uv2和新的源程序test2b.asm,完成编译与仿真设置。
《微机原理实验报告》word版
班级自动化学号姓名实验一系统认识实验一实验目的掌握教学系统的基本操作二实验设备PC机一台masm软件三实验内容及步骤(1)输入程序并检查无误,经汇编连接后装入系统(2)输入E3500后回车,在3500-3510单元中分别送入00~09十个数据(3)按“T“键运行以上程序直至程序运行完(4)输入D3600后回车,查看3600单元后面的数据四程序及其显示的结果(1)程序(2)显示的结果实验三运算类编程实验一实验目的(1)掌握使用运算类指令编程及调试方法(2)掌握运算类指令对各状态标志位的影响及其测试方法二实验设备PC一台masm软件三实验内容及步骤(1)二进制双精度加法运算(2)输入程序并检查无误,经汇编连接后装入系统(3)用U0000:2000查看MOV AX,DA TA的语句,即得到数据段段位置CS:1412用E命令E1412:0000回车,给XL,YL,YH赋值存入二进制数A0,65,15,00和9E,B7,21,00(4)用G=0000:2000,运行以上程序(5)输入D1412:0008,检验显示的结果是否为:3E,1D,17,00四实验程序五程序显示的结果实验四分支程序设计实验一实验目的:(1)掌握分支程序的结构(2)掌握分支程序的设计,调试方法二实验设备:PC机一台masm软件三实验内容设计一数据块间的搬移程序。
设计思想:程序要求把内存中一数据区传送到另一存储区。
源数据块和目的数据块在存储中可能有三种情况,对于两个分离的情况,数据的传送从数据块的首位置开始,或者从数据块的末位置开始。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏,可以得到以下结论:(1)当源数据块首址大于目的块首址时,从数据块首址开始传送数据。
(2)当源数据块首址小于目的块首址时,从数据块末址开始传送数据。
四实验步骤(1)按实验流程图设计编写实验程序(2)输入程序并检查无误后,经汇编,连接后装入系统(3)用E命令在以SI为起址的单元中填入十六个数(4)用G=0000:2000运行实验程序(5)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同五实验程序及结果显示(1)实验程序(1)实验结果显示实验五循环程序设计一实验目的(1)加深对循环结构的理解(2)掌握循环结构程序设计的方法(3)熟练掌握调试循环程序的方法二实验设备:PC机一台masm软件三实验内容求数据区内负数的个数:设数据区的第一单元存放区内单元数据的个数,从第二单元开始开始存放数据,在区内最后一个单元存放结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三DOS中断调用实验实验报告
健行理工1402班陈丽红 201424450202
一、实验目的
掌握字符和数据的显示方法。
二、实验内容
先显示信息“INPUTSTRING,THE END FLAG IS $”再接收字符。
如为0-9,则计数器加1,并显示计数,如为非数字,则直接显示,但不计数。
三、程序框图
开始
段寄存器和堆栈段初始化
数字字符计数器清0
回车换行
显示提示信息
接收键入字符并显示
是$字符
调用QUI,返回
DOS
结束
是回车键
是0-9
计数器BX加1,保存计数器的
值后将其转化为ASCII码
回车换行
显示计数结果
回车换行
调用DISP,显示字符Y
N
Y
Y
N
N
四、程序说明
本次实验重点在于了解中断调用的步骤:(1)准备入口参数;(2)功能号送AH;(3)执行INT n命令,熟练掌握向量号21H的部分常用功能调用。
程序设计时通过对输入的字符进行判断,根据判断结果进入不同的子程序段运行,显示运行结果。
五、源程序清单与执行结果
5.1 源程序清单
DATA SEGMENT ;定义数据段,DATA为
D1 DB 'INPUTSTRING, THE LAST FLAG IS', 0DH, 0AH,'$' 段名,将信息存放在
D2 DB 0DH, 0AH, '$' D1,D2中
DATA ENDS
STACK SEGMENT STACK ;定义堆栈段
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT ;说明代码段、数据段、堆栈段 ASSUME CS:CODE,DS:DATA,SS:STACK
BG: MOV AX,DATA
MOV DS, AX ;给DS赋段值
MOV BX, 0 ;数字字符计数器BX清0
JMP L1 ;跳转至L1
QUI: MOV AH,4CH ;返回DOS
INT 21H
DISP: MOV DX,OFFSET D2 ;输出回车换行
MOV AH,9H
INT 21H
MOV AH,2H ;显示AL中的字符内容
MOV DL,AL
INT 21H
L1: MOV DX,OFFSET D2 ;输出回车换行
MOV AH,9H
INT 21H
MOV DX,OFFSET D1 ;输出“INPUTSTRING,THE END FLAG IS” MOV AH,9H
INT 21H
MOV AH,1H ;键盘输入并显示
INT 21H
CMP AL,'$' ;判断输入字符是否为'$'
JE QUI ;是则调用QUI,返回DOS
CMP AL,0DH ;判断输入字符是否为回车,是则输出 JNE L2 回车换行,进入下一次L1循环,不是
MOV DX,OFFSET D2 则跳转至L2
MOV AH,9H
INT 21H
JMP L1
L2: CMP AL,'9' ;判断输入字符是否为0-9,是则计数 JA DISP 器BX加1,不是则跳转至DISP
CMP AL,'0'
JB DISP
INC BX
PUSH BX ;将BX的内容压入堆栈,保存
ADD BX,30H ;将BX中的数值转化为ASCII码
MOV DX,OFFSET D2 ;输出换行
MOV AH,9H
INT 21H
MOV AH,2H ;显示计数
MOV DL,BL
INT 21H
POP BX ;弹出BX的内容
JMP L1
CODE ENDS
END BG
5.2 执行结果截图
(1)接收字符为0-9,计数器加1,并显示计数。
(2)接收字符为非数字,则直接显示,但不计数,接收字符为0-9时继续计数。
(3)接收字符为‘$’,返回DOS。