实验二、汇编语言程序设计

上传人:qt****68 文档编号:43984532 上传时间:2018-06-07 格式:DOC 页数:15 大小:274.50KB
返回 下载 相关 举报
实验二、汇编语言程序设计_第1页
第1页 / 共15页
实验二、汇编语言程序设计_第2页
第2页 / 共15页
实验二、汇编语言程序设计_第3页
第3页 / 共15页
实验二、汇编语言程序设计_第4页
第4页 / 共15页
实验二、汇编语言程序设计_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《实验二、汇编语言程序设计》由会员分享,可在线阅读,更多相关《实验二、汇编语言程序设计(15页珍藏版)》请在金锄头文库上搜索。

1、微机实验及课程设计实验报告 学号 1东南大学东南大学微机实验及课程设计微机实验及课程设计实验报告实验报告实验二、汇编语言程序设计实验二、汇编语言程序设计姓姓 名:名: 学学 号:号: 专专 业:业: 实实 验验 室:室:516 评定成绩:评定成绩: 审阅教师:审阅教师: 微机实验及课程设计实验报告 学号 2实验目的:实验目的:近一步熟悉汇编语言的编辑、宏汇编、链接和运行的基本概念熟练掌握动态调试程序 TD/DEBUG 的常用指令和窗口功能,学会用 TD/DEBUG 调试程序,修改数据和寄存器环境熟悉掌握汇编语言程序的典型数据结构设计、典型程序控制方法,了解 DOS/BIOS 功能调用的基本方法

2、实验内容实验内容:基本操作内容:基本操作内容: (1) 、掌握进入全屏命令行方式、修改环境的方法启动开始菜单里的运行选项,键入 cmd,即可启动命令行方式,在其属性栏中选择全屏即可进入全屏命令行方式。(2) 、确定源程序的存放目录,构建个人实验环境。(3) 、建立、编辑汇编源程序选择程序样本,构建典型的汇编程序框架,包括基本的数据段、堆栈段和代码段,编写程序实现如下功能:必做:必做:2-1.从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其它字符不变) ,并按原顺序将这些字符在屏幕上显示出来(参考程序 P36) ,并显示字符串“The total num

3、ber is XXXXX” 。2-2.从键盘输入一个 0255 之间的十进制数,将其转换为 16 进制数,并在屏幕上显示变换前后的数据(参考程序 P38) 。 选作:选作: 2-3、从键盘输入 5 个十六进制带符号数(范围为-128+127) ,请将它们按从大到小排序,并将排序前后的数据显示在屏幕上。(4) 、用汇编工具(MASM/TASM.EXE)汇编源程序产生 OBJ 目标文件将所要变异的源程序文件(文件名.asm)放到带汇编工具的文件夹中,在全屏命令行模式下,进入该文件夹,输入 tasm 文件名.asm,回车后即可编译产生 OBJ 目标文件。(5) 、用链接程序(LINK/TLINK.E

4、XE)产生 EXE 可执行文件产生 OBJ 目标文件后,继续输入:tlink 文件名.obj,回车后即可产生 EXE 可执行文件。(6) 、用调试工具软件(TD.EXE/D)调试执行程序在 Windows 中启动 TD 1a、 仅启动 TD 而不载入要调试的程序双击 TD.EXE 文件名,Windows 就会打开一个 DOS 窗口并启动 TD。启动 TD 后会显示一个版权对话框,这时按回车键即可关掉该对话框。b、 启动 TD 并同时载入要调试的程序把要调试的可执行文件拖到 TD.EXE 文件名上,Windows 就会打开一个 DOS 窗口并启动 TD,然后 TD 会把该可执行文件自动载入内存供

5、用户调试。若建立可执行文件时未生成符号名表,TD 启动后会显示“Program has no symbol table”的提示窗口,这是按回车键即可关掉该窗口。观察 CPU 寄存器、存储器环境 2TD 启动后呈现的是一个具有窗口形式的用户界面,称为 CPU 窗口。单步、断点运行,观察中间结果,完成正常执行。 3TD 功能键 F7 为跟踪进入(对 CALL 指令将跟踪进入子程序) ,F8 为单步跟踪(对 CALL 指令将执行完子程序返回后才停下) ,F2 为在当前光标处设置、清除断点。通过单步、断点运行中观察数据区、各个寄存器值的变化,以验证程序运行是否正确。修改当前运行环境,直接编写程序片段,

6、验证指令功能。 4微机实验及课程设计实验报告 学号 3a、 修改寄存器(AX、BX、CX、DX、SI、DI、BP、SP) ,并观察修改段寄存器。b、 修改存储器,并指定不同存储段。c、 修改 CS:IP,单步运行制定指令(F7 或 F8) ,观察指令运行结果。d、 将光标放置在 TD 窗口的代码区右击,可显示代码区的局部菜单,选择相应功能进行操作。重点解决段存储结构和数据变量的定义和访问。 5访问数据段中具体位置的值时,可将光标放置在数据区,右击产生数据区菜单。实验原理:实验原理:实验源程序(主要部分)和流程图:实验源程序(主要部分)和流程图: 2-12-1:data segmentinput

7、 db 100,100 dup(0)string1 db 0dh,0ah,please input your strings,0dh,0ah,$string2 db 0dh,0ah,The string you put are,0dh,0ah,$string3 db 0dh,0ah,Do you want to continue(y/n),0dh,0ah,$string4 db 0dh,0ah,The total mumber is ,0dh,0ah,$data endsstacks segment stackdb 256 dup(0)stacks endscode segmentassume

8、 cs:code,ds:data,ss:stacksmain proc farstart: mov ax,data mov ds,axmov ax,stacksmov ss,axloop1: mov dx,offset string1 mov ah,09h微机实验及课程设计实验报告 学号 4int 21hmov dx,offset input mov ah,0ahint 21hmov dx,offset string2mov ah,09hint 21hcall disp mov dx,offset string4mov ah,09hint 21hcall shu mov dx,offset s

9、tring3mov ah,09hint 21hmov ah,01hint 21hcmp al,y jz loop1mov ah,4chint 21hmain endpshu proc nearmov al,input1mov ah,0hmov cl,0ahdiv cladd al,30hadd ah,30hmov ch,ahmov dl,almov ah,02hint 21hmov dl,chmov ah,02hint 21hret shu endpdisp proc near xor cx,cx mov cl,input1 mov si,2 again: mov dl,inputsicmp

10、dl,61h 微机实验及课程设计实验报告 学号 5jb nextcmp dl,7ahja nextsub dl,20h next: mov ah,02h int 21hinc si loop againretdisp endpcode endsend start2-2:2-2:main proc farstart:mov ax,datamov ds,axmov ax,stacksmov ss,axloop1:mov output,00hmov dx,offset string1mov ah,09hint 21hmov dx,offset inputmov ah,0ahint 21hmov ri

11、ght,1mov dx,offset string5mov ah,09hint 21hcall showincall changecmp right,0jz errormov dx,offset string2mov ah,09hint 21hmov ah,outputmov dl,ahmov cl,4shr dl,clcall dispmov dl,ahand dl,0fh微机实验及课程设计实验报告 学号 6call dispmov dl,48hmov ah,02hint 21hjmp goerror:mov dx,offset string4mov ah,09hint 21hgo: mov

12、 dx,offset string3mov ah,09hint 21hmov ah,1int 21hcmp al,yjz loop1cmp al,Yjz loop1mov ah,4chint 21hmain endpchange proc nearclcxor ax,axxor bx,bxxor dx,dxmov cl,input1mov si,2again:mov bl,inputsicmp bl,30hjb error1cmp bl,39hja error1sub bl,30hdec clcmp cl,0jz overmov ax,1push cxloop2:mul tenloop loo

13、p2pop cxmul bxadd output,aljc error微机实验及课程设计实验报告 学号 7inc sijmp againover:add output,bljnc over1error1:mov right,0over1:retchange endpdisp proc nearpush ush axcmp dl,9jbe numadd dl,7num:add dl,30hmov ah,02hint 21hpop axpop dxretdisp endpshowin proc nearclcxor ax,axxor bx,bxxor dx,dxmov cl,input1mov s

14、i,2again1:mov dl,inputsicmp dl,30hjb error2cmp dl,39hja error2mov ah,02hint 21hinc sidec clcmp cl,0jnz again1jmp over2error2:mov right,0over2:retshowin endpcode endsend start微机实验及课程设计实验报告 学号 83-3:3-3:data segmentinput1 db 4,5 dup(0)input2 db 4,5 dup(0)input3 db 4,5 dup(0)input4 db 4,5 dup(0)input5 d

15、b 4,5 dup(0)temp db 00h,00htempout db 00houtput db 00h,00h,00h,00h,00hstring1 db 0dh,0ah,please input your number(00hffh):,0dh,0ah,$string2 db 0dh,0ah,the number you input is(00hffh):,0dh,0ah,$string3 db 0dh,0ah,the number after ordering is(00hffh):,0dh,0ah,$string4 db 0dh,0ah,do you want to continue(y/n):,0dh,0ah,$data endsstacks segment stackdb 256 dup(0)stacks endscode segmentassume cs:code,ds:data,ss:stacksmain proc farstart:mov ax,datamov ds,axmov

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号