ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:24.81KB ,
资源ID:6660356      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6660356.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电信微机原理与汇编语言实验指导书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电信微机原理与汇编语言实验指导书.docx

1、电信微机原理与汇编语言实验指导书实验一 显示程序实验目的 1掌握汇编语言程序上机的实验过程 2掌握显示程序的基本设计方法。实验原理汇编语言上机过程1、建立汇编源程序(建立 文件名.asm)(1)通过MD-DOS自带的EDIT.EXE文本编辑器进行输入和其它的文本编辑器进行录入、编辑,如可用c语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。2、编译目标文件(即:编译为.obj .lst .crf文件)将正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。如果此时程序有语句错误,系统将报错,并指出在第几行,什么类型的错误,可根据提示去逐一修改。3

2、、连接为可执行文件(即:连接为.exe 或.com文件)在DOS提示符下: LINK filename 回车4、运行编译好的可执行文件当4通过后,会产生一个可执行文件,这时只需运行这个程序,看它是否按你所想象那样得出结果。在试运行期间,要尽量试一些临界状态,看 程序是否运行稳定、结果是否正确,进行5。5、用调试工具调试,重新修改(逻辑错误) 用DOS中自带的调试程序DEBUG.EXE来进行程序调试、检查错误。6有关显示DOS基本命令 1)单个字符显示命令 将要显示的字符的ASCII码送给DL寄存器 中断功能号2送AH寄存器,中断类型21H. 如显示“3” MOV DL,33H 或 MOV DL

3、, 3 如显示A MOV AH,A MOV AH,2 MOV AH,2 MOV AH,2 INT 21H INT 21H INT 21H2)字符串显示命令 将要显示的字符串所在存储区的首地址送给DX寄存器 中断功能号9送AH寄存器,中断类型21H.如显示字符串“HELLO” 存储区定义为 T DB“HELLO”,10,13,24H LEA DX,T MOV AH,9实验方法及步骤 INT 21H1、编写实验程序。2、编译。3、运行(单步,跟踪),检查结果。4、关主机。实验题目编写一个汇编语言程序,要求对键盘输入的一个小写字母用大写字母显示出来。 CODE SEGMENT ASSUME CS:C

4、ODE MAIN PROC FAR PUSH DS INT 21H MOV DL,AL MAIN ENDP MOV AX,0 CMP AL,0DH MOV AH,2 CODE ENDS PUSH AX JZ END0 INT 21H END MAIN CON: MOV AH,1 SUB AL,20H END0: RET 预习内容1、 熟悉汇编语言编辑、编译环境,熟悉DEBUG调试命令(见讲义附录)2、 熟悉有关显示DOS基本命令思考与练习1、显示一个字符串“ABC123”。2、编一显示“HOW ARE YOU!”的程序。【实验报告内容】1、 实验目的、仪器、原理和内容2、 要求写出算法和算法流

5、程图。3、 程序必须在微机上编辑和汇编。4、 调试程序并进行分析并给出实验结果。实验二 数据排序实验目的1掌握循环、分支程序的设计方法。2了解数据排序的简单算法。实验原理 “冒泡排序”算法是从第一个数开始依次将相邻的两个数比较,如果前面的数比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。实验方法及步骤1、编写实验程序。2、编译。3、运行(单步,跟踪),检查结果。4、关主机。实验题目把从MEM单元开始的10个16位有符号数按从大到小的顺序排列。 DATA SEGMENT MEM DW -1,0,24,-32,100,

6、345,-39,1000,2345,-18 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR MOV AX,DATA ADD SI,2 DEC BL MOV DS,AX CMP AX,SI JNZ NEXT1LEA DI,MEM JL NEXT3 MOV AH,4CHMOV BL,9 XCH AX,SI INT 21H NEXT1: MOV SI,DI MOV SI-2,AX MAIN ENDP MOV CL,BL NEXT3: DEC CL CODE ENDS NEXT2: MOV AX,SI JNZ NEXT2 END

7、MAIN 预习内容1、 熟悉冒泡排序原理。2、 熟悉程序结构(循环和分支)及程序设计方法思考与练习1、比较BX,CX,DX中带符号数的大小,将最大的数放在DX中。2、两个字符串比较,若相同,把0存入RESULT单元,若不同,把-1存入RESULT单元。3、从FIRST开始的10个单元中存放着一个字符串,结束符为$。编写一个程序,统计该字符串中字母a的个数。【实验报告内容】1、 实验目的、仪器、原理和内容2、 要求写出算法和算法流程图。3、 程序必须在微机上编辑和汇编。4、 调试程序并进行分析并给出实验结果。实验三 码制转换实验目的1掌握简单的数值转换算法及数值的各种表达方法。2掌握码制转换的基

8、本方法。实验原理1. BCD码的基本表示方法压缩的BCD码和非压缩的BCD码两种格式。压缩的BCD码用4位二进制数表示一个十进制数位,如9502d表示为:1001 0101 0000 0010,非压缩的BCD码以8位为一组表示一个十进制数位,8为中的低4位表示8421的BCD码,而高4位没有意义, 如9502d则表示为:uuuu1001 uuuu0101 uuuu0000 uuuu0010 2二进制到BCD码转换的基本方法 其中,用到除法指令 DIV OPD ;AL = AXOPD(字节)的商, AH = 余数。 DIV OPD ;AL = DX AXOPD(字)的商, AH = 余数。3BC

9、D码转换到二进制的基本方法,是前者的逆变换。用到乘法指令: MUL OPD ;AX =ALOPD(字节) MUL OPD ;DX AX 9 减7 后,“与”0FH实验方法及步骤1、编写实验程序。2、编译。3、运行(单步,跟踪),检查结果。4、关主机。实验题目编写程序将AL和BL中的非压缩BCD码合并成一个压缩的BCD码,存在AL中。CODE SEGMENT ASSUME CS:CODEMAIN PROC FAR SHL AL,CL MAIN ENDP MOV AL,04H OR AL,BL CODE ENDS MOV BL,05H MOV AH,4CH END MAIN MOV CL,4 IN

10、T 21H预习内容熟悉微机原理中第一章有关数制及相互转换的基础知识思考与练习1、编写一个程序,将变量ABC中的16位无符号数,用除十取余的方法转换成十进制数,要求结果用压缩BCD码保存在RESULT单元中。2、若在内存的输入缓冲区ASCBUF中,已有若干个用ASCII码表示的十进制数码.要求把它们转换为相应的BCD码,且把两个相邻存储单元的十进制数码的BCD码合并在一个存储单元中,且地址高的放在前四位,存放在BCDBUF区域.。3、将 AX 拆为二个 ASCII 码, 并存入 Result 开始的二个单元。【实验报告内容】1、 实验目的、仪器、原理和内容2、 要求写出算法和算法流程图。3、 程

11、序必须在微机上编辑和汇编。4、 调试程序并进行分析并给出实验结果。实验四 实时显示日期和时间(综合)一、实验目的1、 掌握子程序设计基本方法,包括子程序定义、调用、返回、参数传递。2、 学习如何进行数据转换和DOS功能调用(系统时间提取、预置等)3、 学习和掌握如何通过查表法提取所需数据。二、实验环境1 、硬件:微机2、 软件:EDIT 、MASM 和LINK 三、实验原理系统功能调用是DOS为系统程序员及用户提供的一组常用子程序。 DOS规定用中断指令INT 21H进入各功能调用子程序的总入口,再为每个功能调用规定一个功能号以便进入相应各个子程序的入口。子程序的入口参数及出口参数在每个功能调

12、用的说明中可以查到。 DOS系统功能调用的使用方法如下:(1)在AH寄存器中存入所要调用功能的功能号;(2)根据所调用功能的规定设置入口参数;(3)用INT 21H指令转入子程序入口;(4)相应的子程序运行完后,可以按规定取得出口参数。DOS共提供了80个功能调用。大致分为设备管理、文件管理和目录管理等几类。在DOS功能中,通过对中断INT 21H功能号(2AH-2DH)调用可实现系统时间提取、预置,在屏幕上实时显示日期和时间。功能号 2AH: 取日期 返回参数 DH:DL=月:日(二进制)功能号 2BH: 设置日期 调用参数 CX:DH:DL=年:月:日 返回参数 AL=0成功 否则失败功能

13、号 2CH: 取时间 返回参数 CH:CL=时:分DH:DL=秒:1/100秒功能号 2DH: 设置时间 调用参数 CH:CL=时:分 返回参数 AL=0成功 否则失败DH:DL=秒:1/100秒四、实验题目利用DOS功能,实现系统时间提取、预置,要求在屏幕上实时显示日期和时间,按任意键停止。五、思考题1、 编写16进制转换成10进制的程序。2、 编写10进制转换成16进制的程序。六、预习要求1、熟悉和掌握实验目的。2、复习相关知识,初步完成实验内容的源程序和操作步骤。七、实验报告要求1、要求写出算法和算法流程图。2、记录实验中的源程序。3、记录实验中的执行结果。4、对照预习时的源程序是否与实

14、验记录相同,分析原因。DATA SEGMENT BUF DB 4 DUP(?),24H mes1 db 请输入年如2007: mes2 db 请输入月和日如0523: mes3 db 请输入小时和分钟如1125: mes4 db 请输入秒如30: crlf db 10,13,24hDATA ENDScode segment assume cs:code,ds:codemain proc far mov ax,data mov ds,ax call dispxt ;显示系统日期和时间 lea dx,mes1 mov ah,9 int 21h call decibin ;设置系统日期 2007:5

15、:8 mov cx,bx lea dx,mes2 mov ah,9 int 21h call decibin mov dx,bx mov ah,2bh int 21h mov ch,11h ;设置系统时间 17:16:30 mov cl,10h mov dh,1eh mov ah,2dh int 21h call dispxt ;显示系统日期和时间quit: mov ah,4ch int 21h retmain endp;-dispxt proc mov ah,2ah ;取系统日期 int 21h push dx ;显示年 mov ax,cx call h16bcd mov dl,: mov

16、ah,2 int 21h pop dx ;显示月和日 mov al,dh call hexbcd push dx mov dl,: mov ah,2 int 21h pop dx mov al,dl call hexbcd mov dl,10 mov ah,2 int 21h mov dl,13 int 21h mov ah,2ch ;取系统时间 int 21h mov al,ch ;显示时 call hexbcd push dx mov dl,: mov ah,2 int 21h pop dx mov al,cl ;显示分 call hexbcd push dx mov dl,: mov a

17、h,2 int 21h pop dx mov al,dh ;显示秒 call hexbcd mov dl,10 mov ah,2 int 21h mov dl,13 int 21h retdispxt endp;- hexbcd proc push cx push dx mov bl,10 mov ah,0 div bl mov cl,ah add al,30h mov dl,al mov ah,2 int 21h add cl,30h mov dl,cl int 21h pop dx pop cx rethexbcd endp;- h16bcd proc push dx push cx MO

18、V SI,OFFSET BUF MOV CX,4 MOV BX,1000LP: CALL SUB1 ADD AL,30H MOV SI,AL INC SI MOV DI,DX MOV AX,BX MOV BX,10 CALL SUB1 MOV BX,AX MOV AX,DI DEC CX JNZ LP lea dx,buf mov ah,9 int 21h pop cx pop dx RETh16bcd ENDP;-SUB1 PROC NEAR MOV DX,0 DIV BX RETSUB1 ENDP;-decibin proc near mov bx,0newchar: mov ah,1 i

19、nt 21h sub al,30h jl exit cmp al,9d jg exit cbw xchg ax,bx mov cx,10d mul cx xchg ax,bx add bx,ax jmp newchar exit: retdecibin endp;-code ends end main附录1 DEBUG主要命令 DEBUG是为汇编语言设计的一种高级工具,它通过单步、设置断点等方式为汇编语言程序员提供非常有效的调试手段。DEBUG程序的调用在DOS的提示符下,键入命令: c:debug d:pathfilename.extparm1parm2其中,文件名是被调试文件的名字。如用户

20、键入文件,则DEBUG将指定的文件装入存储器中,用户便可对其进行调试。如果未键入文件名,则用户可用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。注意:文件的扩展名不能省略。在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。1显示存储单元的命令D显示存储单元的命令的格式为:-Daddress或_Drang例如,按指定范围显示存储单元内容的方法为:-d100 12018E4:0100 c7 06 04 02 38 01 c7 06-06 02

21、 00 02 c7 06 08 02 G8.G.G18E4:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 .;.h.M PQVW.718E4:0120 bB其中,0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边的ASCII字符表示每个字节,表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。2修改存储单元内容的命令E修改存储单元内容的命令有2种。第一种格式可用给定的内

22、容替代指定范围的存储单元内容。命令格式为:-E address list例如,-E DS:100F3XYZ8D。其中F3,X,Y,Z和8D各占一个字节。该命令可用这5个字节来替代存储单元DS:0100到0104的原先的内容。第二种格式采用逐个单元相继修改的方法。命令格式为:-E address例如,-E DS:100。则可能显示为: 18E4:0100 89.-如果需要把该单元的内容修改为78,则用户可以直接键入78,再按“空格”键,完成修改,并显示下一个单元的内容: 18E4:0100 89.78 1B.-这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。3填写命令F(

23、FILL)其格式为:-F range list例如:-F 4BA:0100 5F3XYZ8D。使04BA:0100-0104单元包含指定的5个字节的内容。如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。4检查和修改寄存器内容的命令R(register)三种格式:1)显示CPU内所有寄存器内容和标志位状态,格式为:-R例如,-r。AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18E4 ES=18E4 SS=18E4 C

24、S=18E4 IP=0100 NV UP DI PL NZ NA PO NC18E4:0100 c70604023801 MOV WORD PTR 0204,0138 DS:0204=00002)显示和修改某个寄存器内容,格式为:-R register name例如,键入-R AX系统将响应如下:AX F1F4即AX寄存器的当前内容为F1F4,若不修改则按ENTER键;否则,可键入欲修改的内容,如:-R bxBX 0369:059F则把BX寄存器的内容修改为059F。3)显示和修改标志位状态,命令格式为:-RF系统将响应,显示信息的含义如下表所示,如: OY DN EI NG ZR AC PE

25、 CY 标志位符号表标志位名称置位复位溢出 OverflowOVNV方向DirectionDNUP中断InterruptEIDI符号SignNGPL零ZeroZRNZ辅助进位Anxigiary CarryACNA奇偶ParityPEPO进位CarryCYNC此时,如果不修改其内容可按ENTER键,否则,键入欲修改的内容,如: OV DN EI NG ZR AC PE CY-PONZDINV即可。可见,键入的顺序可以是任意的。5运行命令G为了检查程序运行是否正确,希望在运行中能设置断点以便逐段调试程序。运行命令的格式为:-G=address1address2address3其中地址1指定运行的起

26、始地址,如果不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,停止执行并且显示当前所有寄存器即标志位的内容和下一条将要执行的指令。6跟踪命令T跟踪命令有两种格式:(1)逐条指令跟踪-T =address从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如果未指定地址则从当前的CS:IP开始执行。(2)多条指令跟踪-T =addressvalue从指定地址起执行n条指令后停下来,n由value指定。7汇编命令A汇编命令的格式为: -Aaddress该命令允许键入汇编语言语句,并且能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:

27、DEBUG把键入的数字均看成十六进制数,若要键入十进制数,则其后应加以说明,如100D。8反汇编命令U(1)从指定地址开始,反汇编32个字节,其格式为:-uaddress例如:-u10018E4:0100 c70604023801 mov word ptr0204,013818E4:0106 c70606020002 mov word ptr0206,020018E4:010c c70606020202 mov word ptr0208,020218E4:0112 BB0402 mov bx,020418E4:0115 E80200 call 011A18E4:0118 CD20 int 20

28、18E4:011A 50 push ax18E4:011B 51 push cx18E4:011C 56 push si18E4:011D 57 push di18E4:011E 8B37 mov si,Bx如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。(2)对指定范围内的存储单元进行反汇编,其格式为:-Urange例如:-u100 10c18E4:0100 c70604023801 mov word ptr0204,013818E4:0106 c70606020002 mov word ptr0206,020018E4:010c c70606020202 mov word ptr0208,010

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1