北京理工大学汇编实验五实验报告概要

合集下载

北理工5系微波技术基础实验报告

北理工5系微波技术基础实验报告

从实验数据可以看出, 增益压缩点在输入约为 2.5dBm 处, 1dB 则接收机的动态范围为: -75dBm~2.5dBm
六、 实验问题探讨
(1)详细描述图像传输系统中发射机/接受机的各个组成部分及其功能。 答:摄像头采集的信号送入调制器进行频率调制,在经过一次变频后,滤波,放大,通过天 线发射出去。经过空间传播,接受甜心将信号接收进来,在经过低噪放大,滤波,下变频到 480MHZ,再经中频滤波,滤去谐波和杂波,经视频解调器,解调后输出到显示器还原图像 信号。 (2)该发射机的输入功率、接收机增益与接受机灵敏度? 答:输入为中心频率为 2.2GHz 的微波信号,测量信号强度为-60dBm,测量仪器与测试点间 传输线损耗为-2.3dB,接收机中频放大后信号为中心频率 480MHz 的中频信号,测试信号强 度 为 -39dBm , 传 输 线 损 耗 为 -1dB( 用 了 另 一 个 传 输 线 ) 。 则 接 收 机 增 益 为 : -39-(-60)+2.3+1=23.3dB 。 测试接收机灵敏度为-88dBm,输入信号最小为-85dBm,此时传输线损耗为-3dB。 (3)若在接收机的低噪声放大器前加入衰减器,会明显改变图像质量,而在中频放大器前加
北京理工大学 5 系《微波技术基础》实验报告
入波导中, 听过没一根金属棒伸进波导内部长度的变化改变反射波的幅度和相位, 可以将传 输线从终端短路状态调整到终端匹配状态。
三、 实验步骤
1、首先按图 1 所示将测量系统安装好,然后接通电源和测量仪器的有关开关,观察微 波信号源有误输出只是。若有知识,当改变衰减量或移动测量闲谈整的位置是,测量放大器 的表头指示会有起伏的裱花, 这说明系统意在工作了。 但这并不一定是最佳工作状态。 例如, 若是反射式速调管信号源的话还应把它调到输出功率最大的震荡模式, 凭借和调节信号源处 的短路活塞,以使能量更有效地传向负载。若有必要,还可以调节测量线探头座内的短路活 塞,以获得较高地灵敏度,或者调节测量线探针深入波导的程度,以便较好地拾取信号的能 量(注意,深入太多会影响波导内的场分布) 。对于其他微波信号源也应根据说明书调到最 佳状态。有时信号源无输出,但测量放大器也有一定指示。这可能是热噪声或其他杂散场的 影响;弱信号原有输出,但测量放贷的指示不稳定或者当测量线探针移动式,岂止是不便, 均属不正常情况,应检查原因,使之正常工作。系统正常工作时,可调节测量放大器的有关 旋钮或可变衰减器的衰减量(衰减量不能为零,否则会烧坏晶体二极管,最低调到 5) ,是 测量放大器的指示便于读数。 2、 波导中横向场分布测量。 将图 1 中横向场分布测量线检波器输出连接至测量放大器, 将横向电场探针一直波导宽边中心位置, 调整测量放大器灵敏度和可变衰减器是测量放大器 表头读书处于 50~80 范围内(注意:切不要使表头满刻度,满刻度时会使指示针变形) 。 波导中 TE10 模横向场分布为预先函数,移动横向场分布测量线中电场探针从波导宽边 中心至边缘等间距都 5 个测量放大器读书 3、测量波导波长。将图 1 中纵向场分布测量线检波器输出连接至测量放贷,调整测量 放大器灵敏度和可变衰减器是测量放贷表头读书处于 50~80 范围内 (注意: 切不要使表头满 刻度,满刻度时会使指示针变形) 。 测量g 时应将系统终端短路(将终端三螺调配器的每一根金属棒推出波导,此时利用 三螺调配器的终端短路片实现终端短路) ,则系统呈纯驻波状态(理论上) ,其波导中场强的 纵向幅度如图 3 所示。当测量线的探针处于 Z1 和 Z2 位置时,测量放大器的指示为最小(理 论上为零) ,此时从测量线的刻度上即可求出波导波长g =2|Z2-Z1|。在实际测量中,由于受 设备的精度、灵敏度的限制,以及其他因素的影响,很难精确的确定 Z2 和 Z1 的位置。为提 高测试精度,可采用“平均法”测定它们的位置,如图 3 所示。为了确定 Z1,使在 Z1 两侧 (尽量地靠近 Z1)d1 和 d2 处测量放大器有相同的指示数,则 Z1=(d1+d2)/2,同理可得 Z2= (d3+d4)/2.这比直接去测 Z1 和 Z2 要精确些。

北京理工大学汇编实验五

北京理工大学汇编实验五

一、实验目的1、掌握子程序有关基本知识,学会子程序设计方法;2、掌握主程序与子程序之间的调用关系及调用方法;3、掌握汇编语言字符串处理方法;4、掌握字符串的输入输出程序设计方法;5、掌握数制转换程序实现方法。

二、实验软硬件环境1、硬件环境:惠普64 位一体化计算机及局域网;2、软件环境:windows 8,红蜘蛛管理系统,MASM for Windows。

三、实验相关知识把功能相对独立的程序段单独编写和调试,作为一个相对独立的模块供程序使用,就性成子程序。

子程序可以实现源程序的模块化,可简化源程序结构,可以提高编程效率。

1) 子程序的定义语句格式汇编语言子程序以proc 语句行开始,以endp 语句行结束。

如:过程名PROC near[或far]过程体..........................过程名ENDP在主程序中用CALL 过程名调用。

主程序和子程序之间传递参数通常通过栈来进行,当然也可以用某些缺省的寄存器或内存来传递。

但以通过栈来传递参数程序的通用性最强。

2) 子程序调用说明子程序从PROC 语句开始,以ENDP 语句结束,程序中至少应当包含一条RET 语句用以返回主程序。

在定义子程序时,应当注意其距离属性:当子程序和调用程序在同一代码段中时,用NEAR 属性;当子程序及其调用程序不在同一个代码段中时,应当定义为FAR 属性。

当由DOS 系统进入子程序时,子程序应当定义为FAR 属性。

为执行子程序后返回操作系统,在子程序的前几条指令中设置返回信息。

3) 子程序使用中的问题A、主程序调用子程序是通过CALL 指令来实现的。

子程序执行后,通过RET 指令,返回主程序调用指令CALL 的下一条指令,继续执行主程序。

一个子程序可以由主程序在不同时刻多次调用。

如果在子程序中又调用了其他的子程序,则称为子程序的嵌套。

特别是当子程序又能调用子程序本身时,这种调用称为递归。

B、调用子程序时寄存器及所用存储单元内容的保护。

北京理工大学-计算机网络实践-FTP客户端实验报告

北京理工大学-计算机网络实践-FTP客户端实验报告

实验五 FTP客户端程序1.实验目的文件传送协议FTP是Internet中广泛使用的服务协议之一,FTP协议是客户/服务器之间进行文件传递的协议。

●理解FTP协议的工作原理●掌握FTP客户程序的编程方法●理解在FTP传输过程中建立的两个连接2.实验内容利用WinSock编程接口编写FTP客户程序,在用户界面中给出必要的FTP 服务器信息:FTP服务器的IP地址、用户名、口令等,通过FTP协议实现指定文件的上载和下载操作。

3.实验环境程序运行环境为以太网,采用TCP/IP协议栈,网络操作系统为Windows,具有Internet连接能力。

程序开发环境为vs2012。

4.实验步骤步骤1 需求分析FTP客户程序功能为:(1) FTP客户程序首先显示用户界面,可以指定FTP服务器的地址、用户名和口令等信息(2)通过FTP协议接收FTP服务器的当前目录列表,并显示本地和远程目录列表信息(3)可以实现本地和远程目录的切换(4)可以实现文件的上载和下载操作步骤2 FTP客户程序开发用Visual C++编写FTP客户程序,利用WinSock编程接口实现FTP协议通信。

FTP客户程序首先显示用户界面,使用户可以指定FTP服务器和用户、口令信息(可以采用匿名方式),点击连接按钮后,向FTP服务器的TCP 21号端口建立TCP连接,在控制连接上发送FTP命令,首先获得本地和远程系统的目录列表并显示,可以进行目录切换等操作,指定上、下载的文件建立数据连接进行文件传送。

步骤3 编译和执行程序将FTP客户程序编译、连接成执行程序,运行FTP客户程序。

填写校园网的FTP服务器IP和用户、口令信息,进行各种FTP操作(文件上载、下载)。

5.具体实现(1)数据结构分析定义FileItem结构来保存文件信息typedef struct FileItem{int nItem; // 在列表框中的索引BOOL bDir; // 判断是否为文件夹CString strFileName; // 文件名}FILEITEM;主对话框类完成FTP的大部分功能其中:ID_control成员变量:CListCtrl m_ctrlRemoteFiles; // IDC_LIST_REMOTE 映射的列表型变量CListCtrl m_ctrlLocalFiles; // IDC_LIST_LOCAL 映射的列表型变量CString m_strPassword; // IDC_PASSWORD 映射的CString型变量CString m_strServer; // IDC_SERVER 映射的CString型变量CString m_strUserName; // IDC_USER 映射的CString型变量其他添加功能所需成员变量:CInternetSession* m_pInetSession; // 会话对象CFtpConnection* m_pFtpConnection; // 连接对象CFtpFileFind* m_pRemoteFinder; // 远程查找文件对象CFileFind m_LocalFinder; // 本地查找文件对象CString m_strLocalParentRoot; // 本地文件目录的上上一层目录CString m_strRemoteParentRoot; // 远程文件目录的上上一层目录CArray<FILEITEM,FILEITEM&>m_arrLocalFiles; // 保存本地文件信息CArray<FILEITEM,FILEITEM&>m_arrRemoteFiles; // 保存远程文件信息 成员函数:/* 初始化程序 */BOOL CMyFtpDlg::OnInitDialog()/* 给列表控件CListCtrl增加标题头 */void CMyFtpDlg::AddHeaders(CListCtrl* pLstCtrl)/* 给列表框增加一条记录 */void CMyFtpDlg::AddItem(CListCtrl* pLstCtrl,int nIndex,BOOL bDir,CString strText)/* 响应“download”按钮 */void CMyFtpDlg::OnDownload()/* 响应“Upload”按钮 */void CMyFtpDlg::OnUpload()/* 下载单个文件 */void CMyFtpDlg::DownFile(FILEITEM fileItem)/* 上传单个文件 */void CMyFtpDlg::UpFile(FILEITEM fileItem)/* 连接ftp服务器 */void CMyFtpDlg::OnConnect()/* 获得指定目录下的所有文件,并在列表框中显示 */void CMyFtpDlg::BrowseDir(CString strDir,CListCtrl* pLstCtrl,CFileFind* pFinder,CArray<FILEITEM,FILEITEM&>* pFilesArr)/* 本地文件目录中向上一层 */void CMyFtpDlg::OnLocalUp()/* 远程文件目录中向上一层 */void CMyFtpDlg::OnRemoteUp()主要函数1.在OnInitDialog()函数中进行对话框、列表的初始化,并且设定本地文件目录的默认路径为C盘为根目录。

北理工汇编实验报告

北理工汇编实验报告

汇编语言实验报告实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)班级:05811101姓名:李雨晴学号:1120111452汇编语言实验报告实验一 DOS 环境下的汇编语言编程环境使用(基础与验证型)一、实验要求和目的1、掌握汇编语言程序设计的基本流程和学会上机开发简单程序;2、熟练掌握宏汇编程序MASM 的使用;3、熟练掌握连接程序LINK 的使用;4、熟练掌握DEBUG 的使用;二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识汇编语言程序设计上机开发过程如图1.1 所示。

四、实验内容与步骤1、汇编、链接并调试给出的简单程序,找出程序中的错误。

(一)录入并建立汇编语言源程序文件(ASM 文件)(二)用汇编程序MASM 将ASM 文件汇编成目标程序文件(OBJ 文件)(三)用连接程序LINK 生成可执行程序文件(EXE 文件)(四)程序的调试2、完成程序设计:分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive、Negative 和Zero 中,数组元素个数保存在其第一个字中。

使用Debug 查看Positive、Negative 和Zero 三个变量的数据。

五、实验过程及结果:实验一:1.输入给出的程序2:运行输入的程序,发现了三处错误:根据错误提示,发现错误为ADDITION后未打冒号,CMP错打为COM。

修改原代码:改为:3:代码编译成功,生成OBJ文件,再生成EXE文件,可成功运行。

4:在原程序代码后添加两行代码,以验证ADDITION的逻辑正确性,改动如下:现实在DATA1中添加字节型sum ,再将ADDITION的运行结果,从AX送到sum中去。

5:调试发现ADDITION并没用正确运行。

检查语句逻辑性发现,应将JAE改成JB,才能实现累加并终结。

改为:6:重新进行DEBUG调试:实验二:分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive、Negative 和Zero 中,数组元素个数保存在其第一个字中。

北京理工大学微机原理实验报告

北京理工大学微机原理实验报告

微机原理与接口技术实验报告实验内容:汇编语言程序设计实验组别:12姓名:班级:学号:一、实验目的1、熟悉IDE86集成开发环境的使用。

2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。

3、熟悉DOS命令调用,以达到输入输出、返回DOS系统等目的。

4、掌握利用汇编实现求和与求最值的方法。

5、掌握利用汇编实现数制转换的方法。

6、巩固理论知识,锻炼动手编程,独立思考的能力。

二、实验内容(具体内容)1、求从TABLE开始的10个无符号字节数的和,并将结果放在SUM字单元中。

并查看前5个,前8个数之和以及各寄存器和内存的状态。

2、在1的基础上修改程序,求出10个数中的最大值和最小值,最后将最大最小值分别赋给MAX及MIN。

3、求1到 100 的累加和,并用十进制形式将结果显示在屏幕上。

要求实现数据显示,并返回DOS状态。

三、实验方法1、设计思路(1)实验1的设计思路:先将10个要相加的数存在以TABLE为首的10个连续的存储单元中,然后利用循环结构依次取出数值放在AL中并累加,若有进位则加到AH中直至循环10次累加结束,将累加的结果放在SUM中并返回DOS状态。

(2)实验2的设计思路:先将10个要比较的数放在以TABLE为首的10个连续的存储单元中。

将第一个数首先赋给AL和AH(分别存储相对最小和最大值)在利用LOOP循环结构,依次和下面的数进行比较,每次把相对的最大值与最小值存储到AH和AL中直至循环9次比较结束,将AH和AL里面的最大值与最小值赋给MAX和MIN,返回DOS状态(3)实验3的设计思路:先在内存中定义COUNT=100,表示1-100求和,若相求1-n的和并显示只需COUNT的值为n即可,同时定义一块以DNUM为首地址的数据区用于存储累加和的十进制数对应的ASCII码。

先利用AX和LOOP求出1-COUNT的累加和存在AX中;在进行数值转化,AX 依次除10取余数保存,将16进制数转化为10进制ASCII码值并存在DUNM中。

北理工汇编语言实验讲义-2016

北理工汇编语言实验讲义-2016

CPU与汇编语言实验讲义张芨高平信息系统及安全对抗实验中心2016第一部分汇编语言设计中使用的系统软件简介 (3)第一章 MASM for Windows 集成实验环境 (4)第二章调试程序DEBUG的使用 (9)第二部分宏汇编语言程序设计 (17)实验一 MASM for Windows 环境下的汇编语言编程环境使用 (17)实验二算术运算实验 (19)实验三字符串操作实验 (22)实验四分支和循环实验 (25)实验五子程序与模块化程序设计实验 (28)实验六磁盘文件读写实验 (32)第一部分汇编语言设计中使用的系统软件简介汇编语言实验操作流程图如图1所示。

图1汇编语言实验操作过程在实验室上机时,计算机有教师机统一开启,学生不要随意关机。

1)严禁带电操作;2)带上理论课教材、实验指导书及准备的实验程序;3)调试实验程序,记录实验结果;4)实验结束后,关闭所有应用程序。

第一章 MASM for Windows 集成实验环境1.熟悉MASM for Windows 集成实验环境运行实验室计算机的MASM for Windows 软件,如图2所示。

图 2 MASM for Windows运行环境2.编写运行第一个汇编程序1)输入汇编程序打开MASM for Windows 集成实验环境,在“程序输入区”编写一个显示“Hello World!”的程序。

如图3所示。

图3输入汇编程序红色方框内是需要输入的汇编程序代码,而其它的汇编程序代码该软件自动生成汇编程序框架。

说明:输入的内容分别是:红色框1内的代码:STRING DB 'Hello World',13,10,'$'红色框2内的代码:LEA DX,STRINGMOV AH,9INT 21H2)保存汇编程序点击“工具栏”中的“保存”按钮(或“文件/另存为”或“文件/保存”),弹出“另存为”对话框,键入文件名,如“我的第一个汇编程序”,然后点击“保存”即可。

北京理工大学信号与系统实验报告

北京理工大学信号与系统实验报告

实验1 信号的时域描述与运算一、实验目的1、掌握信号的MATLAB表示及其可视化方法。

2、掌握信号基本时域运算的MATLAB实现方法。

3、利用MATLAB分析常用信号,加深对信号时域的理解。

二、实验原理1、连续时间的MATLAB表示连续时间信号指的是在连续时间范围内有定义的信号,即除若干个不连续点外,在任何信号都有意义。

在MATLAB中,连续时间信号可以用两种方法来表示,即向量表示法和符号对象表示法。

向量表示法:严格意义上来说,MATLAB并不能处理连续时间信号,都必须是用信号等时间间隔采样后的采样值来近似表示的,采样时间间隔足够小的时候,这些采样值就可以近似地表示出连续时间信号。

例如:>>t=0:0.01:10;>>x=sin(t);此时利用plot(t,x)命令即可绘制上述信号的时域波形。

符号对象表示法:连续时间信号先用表达式表示出来,然后采用符号表达式来表示信号。

例如:>>sym t;>>x=xin(t);此时利用ezplot(x)命令即可绘制上述信号的时域波形。

常用的信号产生函数:2、连续时间信号的时域运算对连续时间信号的运算包括量信号想家、相乘、微分、积分以及位移反转、尺度变换(尺度伸缩)等1)相加和相乘信号的相加和相乘指两个信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“•”来计算,此时要求表示两信号的向量时间范围和采样间隔相同,采用符号对象表示的两个信号,可以直接根据符号对象的运算规则运算。

2)微分和积分对于向量表示发表示的连续时间信号,可以用过数值计算的方法计算信号的微分和积分。

这里由时间向量[t1,t2,…,t N]和采样值向量[x1,x2,…,x N]表示的连续信号的微分是利用差分来近似求取的。

MATLAB里用diff来计算差分x(k+1)-x(k)。

连续信号的定积分可以由MATLAB的quad函数实现,调用格式为quad(‘functions_name’,a,b)其中,functions_name为被积函数名,a、b为积分区间。

IPv4协议分析_实验五

IPv4协议分析_实验五

1 / 1
北京理工大学珠海学院实验报告
ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY
班级: 学号: 姓名: 指导教师: 成绩
实验题目: 实验时间:
一、 实验目的:
掌握IPv4协议原理,理解分组首部结构以及各字段的含义。

二、 实验内容及步骤: 1.实验内容:
(1)用科莱网络分析系统捕获数据包。

(2)分析捕获到的IP 数据包中首部各字段的意义。

2.实验步骤:
(1)打开科莱网络分析系统,开始捕获数据包。

(2)用浏览器访问百度,用ping 命令探测临机、网关和百度。

(3)停止捕获,观察捕获到的数据包。

(4)将访问百度以及ping 临机、网关和百度的IP 数据包首部中各字段的值记录在下表中,需要记录IP 数据报的版本号、首部长度、总长度、标识、标志、片偏移、生存时间、上层协议、源地址和目的地址。

(5)比较所记录的各字段的值,理解首部字段的含义和作用。

三、 思考与讨论
1.在连续捕获到的数据包中,IPv4首部哪些字段的值是不变的?说明原因。

答:版本号、首部长度、片偏移、字段值是不变的。

2.在连续捕获到的数据包中,IPv4首部哪些字段的值是变化的?说明原因。

答:总长度、标识、标志、生存时间、上层协议、源地址和目的地址字段值是变化的。

五、实验总结:
1、学到了IPv4中各字段的含义。

2、截下来的图片有好多,经常弄混。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科实验报告实验名称:子程序设计实验实验五子程序设计实验(设计性实验)一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言子程序设计方法;3.熟悉利用汇编语言子程序参数传递方法;4.熟悉汇编语言字符串处理基本指令的使用方法;5.掌握利用汇编语言实现字符串的输入输出程序设计方法;6.掌握数制转换程序实现方法。

二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识A)子程序知识要点:1、掌握子程序的定义语句;过程名PROC [near/far] 过程体RET过程名ENDP2.子程序结构形式一个完整的子程序一般应包含下列内容:1. )子程序的说明部分在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法.说明时,应含如下内容:.子程序名:命名时要名中见意..子程序的功能:说明子程序完成的任务;.子程序入口参数:说明子程序运行所需参数及存放位置;.子程序出口参数:说明子程序运行结果的参数及存放位置;.子程序所占用的寄存器和工作单元;.子程序调用示例;2、)掌握子程序的调用与返回在汇编语言中,子程序的调用用CALL,返回用RET指令来完成。

.段内调用与返回:调用子程序指令与子程序同在一个段内。

因此只修改IP;.段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。

3.)子程序的现场保护与恢复保护现场:在子程序设计时,CPU内部寄存器内容的保护和恢复。

一般利用堆栈实现现场保护和恢复的格式:过程名PROC[NEAR/FAR]PUSH AXPUSH BX..PUSH DX...POP DX...POP AXRET过程名ENDP4.子程序的参数传递方法1.寄存器传递参数这种方式是最基本的参数传递方式。

2.存储器单元传(变量)递参数这种方法是在主程序调用子程序前,将入口参数存放到约定的存储单元中;子程序运行时到约定存储位置读取参数;子程序执行结束后将结果也放在约定存储单元中。

3.用堆栈传递参数利用共享堆栈区,来传递参数是重要的的方法之一。

B)字符、字符串输入输出知识要点:在实际应用中,经常需要从键盘输入数据并将结果等内容显示到屏幕上,方便程序控制及查看结果。

汇编语言的数据输入和输出分成两类,一是单个字符数据的输入输出,一是字符串数据的输入输出。

都可以通过DOS功能调用来实现,下面就分别介绍下用来实现数据输入输出的功能调用的使用方法。

1、单个字符输入单个字符输入可以利用DOS的1号功能调用来完成,使用方法为:MOV AH,1INT 21H这两条语句执行后,光标会在屏幕上闪烁,等待输入数据,输入的数据以ASCII 码形式存储在AL寄存器中。

2、单个字符输出单个字符输出可利用DOS2号功能调用来完成,使用方法为:MOV DL,’?’MOV AH,2INT 21H单个字符输出需要把要输出字符的ASCII码放在DL寄存器中。

3、字符串输入从键盘输入一串字符串可以利用DOS的10号功能调用来完成,使用方法为:BUF DB 50 ;预定义可以输入的最大字符个数DB ? ;实际输入字符个数,根据输入自动统计DB 50 DUP (?) ;存放输入字符串数据缓冲区LEA DX,BUFMOV AH,10INT 21H4、字符串输出字符串输出可由DOS 9号功能调用来完成,使用方法为:STRING DB ‘HELLO$’LEA DX,STRINGMOV AH,9I NT 21HC)表的处理知识要点:表的处理在实际数据处理中应用较为广泛,主要有排序、搜索、插入和删除等操作。

有一些常用的冒泡法、对分搜索法等需要掌握。

四、实验内容与步骤1、从键盘输入一串字符串(显示提示)到内存中,在该字符串的某一个指定位置,插入某一字符或删除某一字符,并显示操作后的字符串。

程序流程图他如下:源代码如下:DATAS SEGMENTSTR1 DB'input strings:$'STR2 DB'1 to Delete 0 to insert:$'STR3 DB'input string:$'STR4 DB'address:$'BUF1 DB?BUF2 DB?A DB 11DB?DB 11 DUP('$')DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:main proc farMOV AX,DATASMOV DS,AXLEA DX,STR1CALL outputLEA DX,AMOV AH,10INT 21H ;输入字符串保存在A 中call CRLEA DX,STR2CALL output;MOV AH,01INT 21HCMP AL,'0'JZ insertJNZ delete insert:call CRLEA DX,STR3CALL outputMOV AH,01INT 21HMOV BUF1,AL ;输入要插入的字符call CRLEA DX,STR4CALL outputMOV AH,01INT 21HMOV BUF2,AL ;要插入位置call CRcall insert1JMP L1delete:call CRLEA DX,STR4CALL outputMOV AH,01INT 21HMOV BUF2,AL ;要删除的位置call CRcall delete1JMP L1L1:LEA DX,A[2]CALL outputMOV AH,4CHINT 21Hmain endpCR proc nearMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HretCR endp ;回车换行output proc nearMOV AH,9INT 21Hretoutput endp ;输出insert1 proc nearMOV BX,0SUB BUF2,30HMOV BL,A[1]MOV SI,BXINC BXSUB BL,BUF2MOV CX,BXL3: MOV BL,A[SI+1]MOV A[SI+2],BLDEC SILOOP L3MOV BL,BUF1MOV AH,0MOV AL,BUF2MOV SI,AXMOV A[SI+1],BLretinsert1 endp ;插入子函数delete1 proc nearMOV BX,0SUB BUF2,30HMOV BL,A[1]SUB BL,BUF2MOV CX,BXMOV BL,BUF2MOV SI,BXINC SIL4: MOV BL,A[SI+1]MOV A[SI],BLINC SILOOP L4MOV BL,A[1]MOV SI,BXMOV A[SI+1],'$'retdelete1 endp ;删除子函数CODES ENDSEND START选择插入功能,运行结果如下:选择删除功能,运行结果如下:2、编写程序把从键盘输入的四位十六进制数,转换为十进制形式在屏幕上打印出来。

程序源代码和流程图如下:num2 DB 0,0,0,0num22 DW 0tempio DB 0temp DW 0tab DB'0123456789abcdef'DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTassume DS:DATAS,SS:CODES,CS:CODESSTART:main proc farMOV AX,DATASMOV DS,AXMOV AX,0LEA SI,num2CALL inputMOV AL,tempioSUB AL,'0'MOV DS:[SI],ALINC SICALL inputMOV AL,tempioSUB AL,'0'MOV DS:[SI],ALINC SICALL inputMOV AL,tempioSUB AL,'0'MOV DS:[SI],ALINC SICALL inputMOV AL,tempioSUB AL,'0'MOV DS:[SI],ALCALL newlineLEA SI,num2MOV CX,4MOV DX,0AHL1:cmp DS:[SI],DLjb L2MOV AL,DS:[SI]SUB AL,7MOV DS:[SI],AL L2:INC SIloop L2LEA SI,num2MOV AH,DS:[SI]MOV CX,4shl AH,CLINC SIMOV BL,DS:[SI]ADD AH,BLINC SIMOV AL,DS:[SI]MOV CX,4shl AL,CLINC SIMOV BL,DS:[SI]ADD AL,BLMOV num22,AX MOV DX,0 MOV CX,2710h DIV CXMOV temp,DX ADD AX,'0' MOV tempio,AL CALL output MOV AX,temp MOV DX,0 MOV CX,3e8h DIV CXMOV temp,DX ADD AX,'0' MOV tempio,AL CALL output MOV AX,temp MOV DX,0 MOV CX,64h DIV CXMOV temp,DXADD AX,'0'MOV tempio,ALCALL outputMOV AX,tempMOV DX,0MOV CX,0AHDIV CXMOV temp,DXADD AX,'0'MOV tempio,ALCALL outputMOV AX,tempADD AX,'0'MOV tempio,ALCALL outputCALL newlineCALL newlineMOV AH,4chint 21hmain endpinput proc nearMOV AH,1int 21hMOV tempio,ALretinput endp ;输入函数newline proc nearMOV AH,2MOV DL,0dhint 21hMOV AH,2MOV DL,0AHint 21hretnewline endp ;回车换行output proc nearMOV AH,2MOV DL,tempioint 21hretoutput endp ;输出函数CODES ENDSEND START运行程序如下:经验证结果正确3、从键盘输入(显示提示)十个2位十进制数(正数)到内存中,按从小到大排序,然后把该数以十六进制形式在屏幕上打印出来。

相关文档
最新文档