文档视界 最新最全的文档下载
当前位置:文档视界 › 汇编与接口实验参考文档

汇编与接口实验参考文档

汇编与接口实验参考文档
汇编与接口实验参考文档

《汇编与接口第一次实验》

第一次实验

作业题目:

一、实验目的

1.进一步学习汇编语言基本指令使用方法;

2.学习DEBUG调试工具的基本使用方法;掌握debug调试命令a、u、r、d、t、g等

3.逐条观察程序指令的执行过程,理解指令的功能,理解程序自动、顺序地执行的概念,实践其过程(重点)。

二、实验题目

1.编写、输入一个32位二进制数相加程序,逐条执行指令,观察指令执行情况。

2.使用已经过汇编和连接的小程序(t3-2.exe),将其装入内存,逐条执行指令,观察执行过程和结果。在实验过程中,使用D命令修改XXX 和YYY单元中的数据,再重新计算其结果。4、如果在一个程序开始执行之前(CS)=0A7F0H(如果十六进制数的最高位为字母,则应该在其前加1个0),(IP)=2B40H,试问该程序的第1个字的物理地址是多少?

一.实验第一部分

1. 启动计算机的WINDOWS操作系统,在开始菜单中找到“运行”,输入“cmd”后回车,启动ms-dos command程序,再在该程序

内输入“DEBUG”并按回车,即启动DEBUG调试程序。

2. 开始编程

在启动的debug程序里输入a命令进入编程功能

在编程部分逐条输入32位二进制数相加程序的指令,完成无符号数10000100H和1200ffffH的加法操作,程序的代码见图1:

图1,程序编写,r指令(执行前),u指令

对32位数的低16位操作时,存放初始地址是0AE1:0100,

使用U命令对代码进行反汇编我们可以看到对应地址中所存放的指令和他们对应的长度,可以看到MOV和ADD指令的的长度都是3,但ADC的指令长度为4,因为ADC指令中需要考虑进位CF所以比MOV和ADD多了一位长度,如上图。

使用r命令后,可以看到指令执行前各寄存器的内容,CS:IP的内容为0100,下一条执行的指令为MOV AX,0100,操作数寻址为立即数寻址,内存单元的值为0100H。

图2

使用t命令单步执行指令后,所得结果见上图2,执行过程中,CS:IP的内容随指令长度的变化依次增加,标志位寄存器只有PF,CF的值在计算过程中有变化,其中在两次CF的标志位CY时表示有进位发生,OF一直为NV,表明计算结果没有溢出。

图3

对程序使用r命令查看寄存器AX,DX的值,见上图3,可知,AX=00FF,DX=2201,CF=0,说明运算结果低16位为00FF,高16位为2201,无进位,即结果是220100FF,计算正确。

图 4

使用d命令查看程序运行过后的结果如上图4,可以看到,内存单元的存放顺序是低地址放低字节,高地址放高字节,同时数据的存放是按顺序连续存放的,指令的存放与数据是同时的,都存放在连续的内存地址中。

图5

使用e命令对内存单元的内容进行修改,再次运行程序,可见结果也有了相应的改变。如下图。

图6

使用g指令再次运行程序,可以看到运算结果也相应改变。

图7

二.实验第二部分

图8

将写的asm文件转化成exe文件,如上图

图9

运行debug程序,u命令进行反汇编,查看程序内容,运行r命令查看寄存器内容和下一条将要执行的内容,由于这里我们并没有开始运行程序,因此寄存器的内容都为原初始内容,如上图。

图10

t指令运行程序,如上图,可以看到IP的值在对应着我们u命令查看的指令的地址进行递增。

在这几步中标志位发生变化有ZF和PF,其中在XOR DX DX时两个相同的数进行异或操作结果是零因此结果是零,所以ZF=ZR。

其中[0000]是间接寻址。

图11

继续运行指令,在这几步中,我们可以看到,在上一步的结尾的ADD AX AX可以看到AX变为2468(1234+1234),ADD DX DX 的结果仍然是ZR(零)。在上图中的OF标识符发生变化,原因是ADD AX AX 命令后AX寄存器的数值的最高位(符号位发生改变)。

继续运行指令,在这几步的运行过程中,ADD AX AX,后由于符号位改变所以OF = OV,因为产生进位,因此进位标志CF = CY,结果是2348 进1。

将AX中的数据存入0004指向的内存单元中

最后我们将DX中所存数据(进位次数)存入0006指向的内存单元中。

分析整个过程,可以看到我们将AX中的数值增大了16倍之后加上Y并用DX寄存器储存进位,最后分别将高低位储存在相邻的高地字节中。即实现运算为:Z=X*2^4+Y。

《汇编语言与接口专业技术》习题解答第三章

《汇编语言与接口技术》习题解答(第三章)

————————————————————————————————作者:————————————————————————————————日期:

问题: 画图说明下列语句分配的存储空间及初始化的数据值 解答: (1)byte_var DB 'ABC',10,10h,'EF',3 DUP(-1,?,3 DUP(4)) (2)word_var DW 10h,-5,3 DUP(?) 习题3.10 ‘A ’‘B ’‘C ’1010h ‘E ’‘F ’-1-444... 41h 42h 43h 0ah10h 45h 46h ffh -04h 04h 04h 3个10h 0FBh FFh ---- --10h -5?? ? 3.16 解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 3.18 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 3.19 解: .model small .stack .data bufX dw -7 signX db ? .code .startup cmp bufX,0 ;test bufX,80h

jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 3.20 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h 3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H 等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ;wjxt322.asm .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 3.30 解: lucase proc push bx mov bx,offset string cmp al,0 je case0

四则运算实验报告

实验3四则运算表达式求值 背景 在工资管理软件中,不可避免的要用到公式的定义及求值等问题。对于数学表达式的计算,虽然可以直接对表达式进行扫描并按照优先级逐步计算,但也可以将中缀表达式转换为逆波兰表达式,这样更容易处理。 问题描述 四则运算表达式求值,将四则运算表达式用中缀表达式,然后转换为后缀表达式,并计算结果。 基本要求 使用二叉树来实现。 实现提示 利用二叉树后序遍历来实现表达式的转换,同时可以使用实验2的结果来求解后缀表达式的值。 输入输出格式: 输入:在字符界面上输入一个中缀表达式,回车表示结束。 输出:如果该中缀表达式正确,那么在字符界面上输出其后缀表达式,其中后缀表达式中两相邻操作数之间利用空格隔开;如果不正确,在字符界面上输出表达式错误提示。 选作内容 (1)在输入输出方式上要求使用: 输入:将中缀表达式存于文本文件中,程序从该文本文件中读出表达式。 输出:如果该中缀表达式正确,则将后缀表达式输出到该文件中原表达式的后面,它们之间用“---”后相连;如果不正确,请在输出表达式错误提示到该文件原表达式的后面,它们之间用“---”相连。 (2) 利用堆栈来实现中缀表达式转换为后缀表达式。 测试用例 输入:21+23*(12-6) 输出:21 23 12 6 -*+ 程序代码:

#include #include using namespace std; #define SIZE 100 #define STACKINCREMENT 10 template //栈 class stack{ public: void InitStack() { S.base = (T *)malloc(SIZE * sizeof(T)); if(!S.base) exit(0); S.top = S.base; S.stacksize = SIZE; } void DestroyStack(){ free(S.base); } void ClearStack(){ S.top = S.base; } bool StackEmpty(){ if(S.top == S.base) return true; else return false; } int StackLength(){ return (S.top - S.base); } bool GetTop(T &t){ if(S.top != S.base){ t = *(S.top - 1); return true;} else return false; } void Push(T t){ if(S.top - S.base >= S.stacksize){ S.base = (T *)realloc(S.base,(S.stacksize + STACKINCREMENT) * sizeof(T)); if(!S.base) exit(0); S.top = S.base + S.stacksize; S.stacksize += STACKINCREMENT; } *S.top = t; S.top++ ;

西工大信号与系统-实验1

西北工业大学 《信号与系统》实验报告 西北工业大学

a. 上图分别是0N或者M

b. 以上是代码,下图是运行结果

由上图可看出,图上一共有3个唯一的信号。当k=1和k=6的时候的图像是一样的。因为档k= 1时,wk=(2*PI)/5,k=6时,wk=2PI+(2*PI)/5,即w6 = 2PI+w1,因为sin函数的周期是2PI,所以他俩的图像是一样的 c.代码如下:

图像如下: 可得出结论:如果2*pi/w0不是有理数,则该信号不是周期的 1.3离散时间信号时间变量的变换 a. nx=[zeros(1,3) 2 0 1 -1 3 zeros(1,3)];图像如下: b. 代码如下: x=zeros(1,11);

x(4)=2; x(6)=1; x(7)=-1; x(8)=3; n=-3:7; n1=n-2; n2=n+1; n3=-n; n4=-n+1; y1=x; y2=x; y3=x; y4=x; c: 代码和结果如下结果 下图是结果图

软件项目详细设计文档示例模版

XXX软件/项目/系统 详细设计说明书 拟制日期 评审人日期 批准日期 编写单位或个人

修订历史

目录 XXX软件详细设计说明书 (1) Revision Record 修订记录 (2) 1引言 (1) 1.1编写目的 (1) 1.2背景 (1) 1.3参考资料 (1) 1.4术语定义及说明 (1) 2设计概述 (1) 2.1任务和目标 (1) 2.1.1需求概述 (1) 2.1.2运行环境概述 (1) 2.1.3条件与限制 (1) 2.1.4详细设计方法和工具 (1) 3系统详细需求分析 (1) 3.1详细需求分析 (2) 3.2详细系统运行环境及限制条件分析接口需求分析 (2) 4总体方案确认 (2) 4.1系统总体结构确认 (2) 4.2系统详细界面划分 (2) 4.2.1应用系统与支撑系统的详细界面划分 (2) 4.2.2系统内部详细界面划分 (2) 5系统详细设计 (2) 5.1系统结构设计及子系统划分 (3) 5.2系统功能模块详细设计 (3) 5.3系统界面详细设计 (3) 5.3.1外部界面设计 (3) 5.3.2内部界面设计 (3) 5.3.3用户界面设计 (3) 6、数据库系统设计 (4) 6.1设计要求 (4) 6.2 信息模型设计 (4) 6.3数据库设计 (4) 6.3.1设计依据 (4) 6.3.2数据库种类及特点 (4) 6.3.3数据库逻辑结构 (4) 6.3.4物理结构设计 (4) 6.3.5数据库安全 (4) 6.3.6数据字典 (4) 7非功能性设计 (4) 8 (5) 9环境配置 (5)

1引言 1.1编写目的 说明编制的目的是,大体上介绍一下软件系统中各层次中模块或子程序、以及数据库系统的设计考虑,表明此文档是主要是为编码人员提供服务,并且其他类型的项目参与人员也可以通过此文档对软件/项目有更深入了解。 1.2背景 说明此软件或系统的项目背景、需求背景、开发目的等,还可以列出参与人员等相关信息。 1.3参考资料 列出本文档中引用的文献、资料、标准等相关信息(一般是具有出版或版权性质的文件)。 1.4术语定义及说明 列出文档中用到的和开发有关,或与行业、业务、需求有关的专业术语,并进行解释。 2设计概述 2.1任务和目标 说明详细设计的任务及详细设计所要达到的目标。 2.1.1需求概述 对所开发软件的概要描述, 包括主要的业务需求、输入、输出、主要功能、性能等,尤其需要描述系统性能需求。 2.1.2运行环境概述 对本系统所依赖于运行的硬件,包括操作系统、数据库系统、运行库、中间件、接口软件、可能的性能监控与分析等软件环境的描述,及配置要求。 2.1.3条件与限制 详细描述系统所受的内部和外部条件的约束和限制说明。包括业务和技术方面的条件与限制以及进度、管理等方面的限制。 2.1.4详细设计方法和工具 简要说明详细设计所采用的方法和使用的工具,如数据库设计工具、界面设计工具、原型设计工具等。 3系统详细需求分析 主要对系统级的需求进行分析。首先应对需求分析提出的企业需求进一步确认,并对由于情况变化而带来的需求变化进行较为详细的分析。

《汇编语言与接口技术》答案习题解答(第三章)

解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 解:

.model small .stack .data bufX dw -7 signX db .code .startup cmp bufX,0 ;test bufX,80h jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h

编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ; .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 解: lucase proc push bx mov bx,offset string cmp al,0 je case0 cmp al,1

接口与程序设计作业(附答案)

习题1(教材P56) 1.8086/8088微处理器地址总线有多少位?寻址范围是多少? 答:20位 A019。寻址范围00000 2.8086/8088微处理器分哪两部分?各部分主要由什么组成? 答:执行单元和总线接口单元。 包括:、寄存器组、暂存器、标志寄存器、控制单元。 包括:指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制逻辑。 4.8086/8088微处理器中有几个通用寄存器?几个变址寄存器?有几个指针寄存器?几个段寄存器? 答:8个通用寄存器、、、、、、、。2个变址寄存器、。2个指针寄存器、。、、、段地址寄存器。 5.8086/8088微处理器中有哪些标志位?它们的含义和作用如何? 答:零标志位、进位标志、溢出标志位、辅助进位标志位、奇偶标志位、符号标志位、方向标志位、中断允许标志位、跟踪标志。 6.试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别? 12783469H 答:0001 0010 0111 1000 +0011 0100 0110 1001 0100 0110 1110 0001 0;0;0;0;1;1。 54E3H-27A0H 答:0101 0100 1110 0011 +1101 1000 0110 0000(-27A0的补码) 10010 1101 0100 0011 0;0;1;0;0;0。 H 答:0011 1000 1000 0001 +0011 0101 1001 0111 0110 1110 0001 1000 0;0;0;0;0;1。 01E301E3H 答:0000 0001 1110 0011 +1111 1110 0001 1101(-01E3H的补码) 10000 0000 0000 0000 1;0;1;0;1;1。 进位表示最高位产生进位。

汇编语言四则运算

《微机原理与接口技术》 课程设计 电气与自动化工程系 通信工程 2010-12-28 院 系:专 业: 年级班级: 学 号: 姓 名: 指导教师:设计日期:

一、课程设计目的 每个同学在1-2周时间内,用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的程序的目的。 二、课程设计要求 从键盘上输入数字参与运算,并在屏幕上显示结果,至少实现加法减法运算。 三、课题分析 该程序设计的关键是要根据四则运算中()、*、/、+、-、= 的优先级设置符号的权值,其中(、*、/、+、-、)、= 的权值分别设置为5、4、4、3、3、1、0 ,然后根据权值的大小进行运算。程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。程序不断判断输入的符号是否是左括号‘(’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘(’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。需要注意的是程序执行完括号内表达式的运算及乘除运算后将在存储区MARK中覆盖符号(、)、*、/ 及紧跟着的权值,使得程序在运算整个四则运算表达式时当括号内表达式的运算及乘除运算结束后存储区MARK中只有‘ +、-’运算符及紧跟着的权值,然后按照+、- 运算符的左右顺序从左到右进行‘ +、- ’运算,当最后遇到等号‘ = ’时输出表达式的数值,然后再根据提示判断是否继续执行下一个四则运算表达式。

开发接口文档-API文档模板

XXX项目接口文档版本控制信息 获取所有字段 获取所有字段 请求地址:/session/field/findAll 请求参数 响应

请求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常! ","page":0,"pageSize":0,"returnObject":null,"returnValue":{"types":null,"villages":null,"companys":[{"iconColour":"","iconSize":0,"ico nStyle":"","id":4,"name":"XX"},{"iconColour":"","iconSize":0,"iconStyle":"","id":5,"name":"XX"},{"iconColour":"","iconSize":0,"iconSty le":"","id":7,"name":"XX"}]},"totals":0} 文件上传 文件上传(ajax) 请求地址:/session/file/upload 请求参数 响应 请求例子:var formData = new FormData(); ("file", [0]); $.ajax({ url : routePath + "/session/file/upload", type : 'POST', data : formData,

processData : false, contentType : false, success : function(result) { result = (result); if == "10000"){ ('上传成功!'); $("#editHeadPortrait").val } } }); 响应例子:returnValue里包含了 fileName和filePath 字段管理-所属类型 新增所属类型 请求地址:/session/fieldType/save 请求参数 响应 请求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"totals":0}

汇编与接口 第六章作业

P327页 15.8255A有哪几种工作方式,对这些工作方式有什么规定? 答:8255A有三种工作方式。分别是方式0(基本的输入输出方式);方式1(选通的输入输出方式);方式2(双向传输方式)。 方式0:不需要应答联络信号。A、B、C口都可以工作在方式0。 方式1:选通的输入输出方式,只有A、B端口可以工作在方式1,C端口作为A、B端口的应答信号。而且是单向的,作为输入端口,就不能做输出端口,作为输出端口就不能做输入端口。 方式2:双向传输方式,只有A端口可以工作在方式2,C端口做为A端口输入输出时的应答信号,可以工作在输入,也可以工作在输出。 16.假设8255A端口地址为00C0~00C6H,要求: (1)对8255A设置工作方式,A端口工作在方式1,输入;B端口工作在方式0,输出;端口C的4为配合端口A工作,端口C的低4为方式0,输入。 (2)用置0∕置1,直接对PC6置1,对PC4置0 答:端口地址0000 0000 1100 0000 ~0000 0000 1100 0110。说明A口地址为00C0H,B 口地址为00C2H,C口地址为00C4H,控制字地址为00C6H。 (1)控制字为:1011X001B,即0B1H(X取0) MOV AL,0B1H MOV DX,00C6H OUT DX,AL (2)直接对PC6置1时的控制字为:0XXX1101B,即0DH MOV AL,0DH MOV DX,00C6H OUT DX,AL 直接对PC4置0时的控制字为:0XXX1000B,即08H MOV AL,08H MOV DX,00C6H OUT DX,AL 17.使用8255A作为开关和LED指示灯的接口。要求8255A的A口连接8个开关,B口连接8个LED(发光二极管),用作指示灯,将A口的开关状态读入,然后送至B口控制指示灯亮、灭。试画出接口电路设计图,并编写程序实现。 解:根据要求,设计电路如图所示。用PA7引脚上的开关控制PB7上的LED,PA0引脚上的开关控制PB0上的LED。开关闭合输入低电平,开关打开输入高电平。高电平指示灯亮。A端口地址为8000H,B端口地址为8001H ,C端口地址为8002H ,控制字寄存器地址为8003H(假设未使用的地址线都取0)。 控制字:10010000B(C口工作在输出),即90H 参考程序: MOV AL, 90H MOV DX, 8003H OUT DX, AL LOOP: MOV DX, 8000H IN AL, DX MOV DX, 8001H

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录错误!未定义书签。 1 概述错误!未定义书签。 设计目的错误!未定义书签。 设计内容错误!未定义书签。 2 系统需求分析错误!未定义书签。 系统目标错误!未定义书签。 主体功能错误!未定义书签。 开发环境错误!未定义书签。 3 系统概要设计错误!未定义书签。 系统的功能模块划分错误!未定义书签。系统流程图错误!未定义书签。 4系统详细设计错误!未定义书签。 5 测试错误!未定义书签。 测试方案错误!未定义书签。 测试结果错误!未定义书签。 6 小结错误!未定义书签。 参考文献错误!未定义书签。 附录错误!未定义书签。 附录源程序清单错误!未定义书签。

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 开发环境 集成环境 3 系统概要设计 系统的功能模块划分 本题目实现的模块图如图3-1所示

《汇编语言与接口技术》习题解答(第三章)

3.16 解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 3.18 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 3.19 解: .model small .stack .data bufX dw -7 signX db ? .code .startup cmp bufX,0 ;test bufX,80h

jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 3.20 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h 3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H 等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ;wjxt322.asm .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 3.30 解: lucase proc push bx mov bx,offset string cmp al,0 je case0

信号与系统答案 西北工业大学 段哲民 信号与系统1-3章答案

第一章 习 题 1-1 画出下列各信号的波形:(1) f 1(t)=(2-e -t )U(t); (2) f 2(t)=e -t cos10πt×[U(t -1)-U(t-2)]。 答案 (1))(1t f 的波形如图1.1(a )所示. (2) 因t π10cos 的周期 s T 2.0102== ππ ,故)(2t f 的波形如图题1.1(b)所示. 1-2 已知各信号的波形如图题1-2所示,试写出它们各自的函数式。 答案 )1()]1()([)(1-+--=t u t u t u t t f )]1()()[1()(2----=t u t u t t f )]3()2()[2()(3----=t u t u t t f 1-3 写出图题1-3所示各信号的函数表达式。

答案 2 002121 )2(21121)2(21 )(1≤≤≤≤-?????+-=+-+=+=t t t t t t t f )2()1()()(2--+=t u t u t u t f )] 2()2([2sin )(3--+-=t u t u t t f π )3(2)2(4)1(3)1(2)2()(4-+---++-+=t u t u t u t u t u t f 1-4 画出下列各信号的波形:(1) f 1(t)=U(t 2-1); (2) f 2(t)=(t-1)U(t 2-1); (3) f 3(t)=U(t 2-5t+6); (4)f 4(t)=U(sinπt)。 答案 (1) )1()1()(1--+-=t u t u t f ,其波形如图题1.4(a)所示.

项目需求规格说明书模板

精品文档 软件项目名称 错误!未指定书签。 拟制:日期: 审核:日期: 批准:日期:

文件修改记录

目录 1范围 (4) 2 总体概述 (4) 2.1 产品描述 (4) 2.2 软件功能 (4) 2.3 一般约束 (5) 2.4 假设和依赖 (5) 3 具体需求 (5) 3.1 功能需求 (5) 3.1.1 功能需求1 (5) 3.1.2 功能需求2 (6) 3.1.n 功能需求n (7) 3.2 外部接口需求 (7) 3.2.1 用户接口 (7) 3.2.2 硬件接口 (7) 3.2.3 软件接口 (7) 3.2.4 通讯接口 (7) 3.3 性能需求 (7) 4 设计约束 (8) 4.1 标准的约束 (8) 4.2 硬件的限制 (8) 4.3 技术的限制 (8) 5 软件质量属性 (8) 5.1 安全性 (9) 5.2 可维护性 (9) 5.3 可移植性 (9) 6 其他需求 (9) 6.1 数据库 (9) 6.2 本地化 (10) 7待确定问题 (10)

模板使用说明: [1]注明可选的部分,可以根据实际情况选择是否填写;如果不必说明,请保留相关的章节标题,同时在该可选章节的内容中填入“无”;未注名可选的,则必须描述;如果有些设计此模版中没有合适的地方填写,则补充在最后的其他栏目中 [2]模版中斜体字相当于撰写指南,最后文稿请将本模板中所有的斜体字部分全部删除。 [3]模板里并不说明设计技术和方法,而只是说明应包含哪些内容,以及如何描述、组织这些内容。

1范围 说明文档所包括和不包括的内容,具体是: a.待开发的软件系统的名称; b.说明软件将干什么,如果需要的话,还要说明软件产品不干什么; c.描述所说明的软件的应用。如果有一个较高层次的说明存在,则应该使其和高层次说明中的类似的陈述相一致(例如,系统的需求规格说明)。 2 总体概述 2.1 产品描述 叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。 2.2 软件功能 概述软件必须实现的和通过用户操作实现的主要功能。这里只需要进行简要描述(例如目录列表),详细描述在详细需求部分描述。 有时,如果存在较高层次的规格说明时,则功能摘要可从中取得,这个较高层次的规格说明为软件产品分配了特殊的功能,为了清晰起见,请注意: a.编制功能的一种方法是制作功能表,以便客户或者第一次读这个文件的人都可以理解; b.用方框图来表达不同的功能和它们的关系也是有帮助的。但应牢记,这样的图不是产品设计时所需求的,而只是一种有效的解释性的工具。 例如:高层的数据流图,面向对象的分析等。

汇编语言与微机接口技术作业6章(含答案)

作业: 课本6.5 6.7 第6章补充题参考答案 补充题1:初始化8259A控制器,系统中有一片8259A,中断请求用电平触发,中断类型号为60H~67H,特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。8259A端口地址为93H/94H。编写其初始化程序。 答: MOV AL, 1BH ;设置ICW1(中断请求信号采用电平触发方式,单片,

OUT 94H, AL MOV AL, 60H ;设置ICW2(将中断类型码高5位指定为01100) OUT 93H, AL MOV AL, 13H ;设置ICW4(用特殊全嵌套方式;用中断自动结束方式;采用非缓冲方式,工作于8088/8086系统) OUT 93H, AL 补充题2:开关K4的信号输入到中断控制器8259A的IR2,当K4开关合上瞬间,产生中断,在中断服务程序中完成读取开关K0~K3的状态,并在7段数码管上显示数字或符号。设输出接口的地址为3F2H,输入接口地址为3F3H。当开关K0~K3的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’,8259A的端口为3F0H和3F1H.设其中断号为08H~0FH。1. 设计相关的接口电路,包括8259A的连接。 2. 编写主程序完成初始化8259A和相关中断向量的设置。 3. 编写中断服务程序。 答: 1. 接口电路图 2. 初始化程序: INPORT EQU 03F3H OUTPORT EQU 03F2H PORT8259 EQU 03F0H …… ;设置数码管显示数据 Seg7 DB 3FH,06H, 5BH,4FH,66H,6DH, 7DH,07H,7FH,67H,77H, 7CH,39H,5EH,79H,71H …… MOV AL, 13H ;设置ICW1(中断请求信号采用边沿触发方式,单片,

汇编课程设计(有符号多位十进制数的四则运算计算器)

汇编语言课程设计实验报告 一、课程设计目的 《汇编语言程序设计》是计算机专业一门重要的核心课程,也是一门实践性很强的课程,而课程设计则是其中一个重要的应用实践环节。 本次课程设计的目的是提高分析问题、解决问题的能力以及实际动手能力,进一步加深对汇编语言程序设计基本理论的理解,熟练掌握汇编语言程序上机调试的方法技巧、结构化程序设计技术及高级汇编语言技术,能编写较复杂的应用程序,为学习后继课程打下扎实的基础 二、实验环境 编译机器:IBM兼容PC 操作系统:Windows XP -SP2 中文版 编译工具:MASM 5.0 三、课程设计内容 1、编写一个有符号多位十进制数的四则运算计算器程序,所输入的算式如下例所示: -278+32= -132――12= 11*-32= -1234/-18= 要求程序能接收键入的算式,在接收到‘=’号时,计算并以有符号十进制数的形式显示结果,然后允许用户继续键入算式。如果键入算式后再键入‘.’,则显示结果并结束整个程序。(‘/’为整除) 程序设计框图: 程序源代码:

2、已知一个由英语单词组成的字符串已按字典序排好,每个单词以空格符为结束,该串的首二字节为16位无符号二进制数,用以说明串的长度。试编程能从键盘上输入单词(以空格字符为结束),若字符串中没有该单词,则将该单词插入该串适当的位置,使其仍保持字典序,并修改串长度,显示单词在串中位置及串长度;若字符串中有该单词,则显示字符串中所有包含该单词的单词,及其在字符串中的位置。

程序设计框图: 程序代码: DATA SEGMENT ; DICTIONARY 字典字符串,首两个字节为 16 位无符号二进制数,说明字符串长度。 DICTIONARY DB 00,16H,"add an book dad egg " DB 100H DUP(20H) ; 空的缓冲区。 MSG_INTRO DB "Input the Word to Search : ","$" MSG_NOTFOUND DB "Not Found, Now Insert it . ",0AH,0DH,"$" MSG_NEWDICT DB 0AH,0DH,"New Dictionary : ","$" MSG_FOUND DB 0AH,0DH,"Found Word in Dictionary : ","$" MSG_POSITION DB 0AH,0DH,"Position : ","$" MSG_DICTLENGTH D B 0AH,0DH,"New Dictionary Length : ","$" MSG_NEWLINE DB 0AH,0DH,"$" BUFFER DB 10H DUP(20H) ; BUFFER 用于保存需要查询的单词。 WORD_LENGTH DB 0H CHAR_SPACE EQU 20H ;默认的单词间隔为空格。 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA start: MOV AX,DATA MOV DS,AX LEA BX,BUFFER;把buffer有效地址送BX MOV DX,OFFSET MSG_INTRO ;把偏移地址送DX通用寄存器 MOV AH,09H ;调用9号中断,输出MSG_INTRO INT 21H GET_WORD: ; 获取用户输入的需要查找的单词字符串。 MOV AH,01H INT 21H CMP AL,0DH ; 输入以回车结束。 JE INPUT_FINISH ;如果是回车,跳转输入结束 MOV [BX],AL INC BX ;BX加1,下一步修改字符长度

汇编实验之四则运算

计算机原理实验室实验报告 课程名称: 姓名学号班级成绩 设备名称及软件环境 实验名称四则运算实验日期 一.实验内容 从键盘输入一个十进制两位数的四则运算表达式, 如23*56-(8*19)/6+67-8=,编程计算表达式的值, 输出十进制结果(有可能是三位或四位十进制),+-*/位置任意。 并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止。二.理论分析或算法分析 根据题目的要求,可以把整个源程序大致划分为几个基本结构: 程序加法、减法、乘法、除法、显示结果五个部分。 首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n执行继续计算和退出操作 三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等) 主程序流程:

代码 : 根据题目的要求,可以把整个源程序大致划分为几个基本结构,程序加法、减法、乘法、除法、显示结果五个部分 源程序: CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS NEXTLINE MACRO ;显示换行宏 MOV AH,2 MOV DL,10 开始 从键盘输入字符 AL=‘+’ AL=‘-’ AL=‘*’ AL=‘=’ AL=‘/’ 输出结果 结束 从键盘输入加数并执行加运算 从键盘输入加数并执行减运算 从键盘输入加数并执行乘运算 从键盘输入加数并执行除运算 Y Y Y Y Y N N N N

软件工程文档模板范例.doc

目录 三、需求规格说明书 (2) 四、概要设计说明书 (12) 五、详细设计说明书 (15)

3软件需求说明书 软件需求说明书的编制是为了使用户的软件开发者双方对该软件的起初规定有一个共同的理解,使之成为整个开发工作的基础。编制软件需求说明书的内容要求如下: 3.1引言 3.1.1编写的目的 3.1.2背景 3.1.3定义 3.1.1参考资料 3.2任务概述 3.2.1目标 3.2.2用户的点 3.2.3假定与约束 3.3需求规定 3.3.1对功能的规定 3.3.2对性能的规定

3.3.2.1精度 3.3.2.2时间特性要求 3.3.2.3灵活性 3.3.3输入输出要求 3.3.4数据管理能力的要求 3.3.5故障处理要求 3.3.6其它的专门的要求 3.4运行环境规定 3.4.1设备 3.4.2支持软件 3.4.3接口 3.4.4控制 4数据需求说明书 数据要求说明书的编制目的是为了向整个开发时期提供关于处理数据的描述和数据采集要求的技术信息。编制数据要求说明书的内容要求如下: 4.1引言

4.1.1编写目的 4.1.2背景 4.1.3定义 4.1.4参考资料 4.2数据的逻辑描述 4.2.1静态数据 4.2.2动态输入数据 4.2.3动态输出数据 4.2.4内部生成数据 4.2.5数据约定 4.3数据的采集 4.3.1要求和范围 4.3.2输入的承担者 4.3.3处理 4.3.4影响 5概要设计说明书 概要设计说明书可称作系统设计说明书,这里说的系统是指程序系统,编制的目

的是说明对程序的系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。编制概要设计说明书的内容要求如下: 5.1引言 5.1.1编写目的 5.1.2背景 5.1.3定义 5.1.4参考资料 5.2总体设计 5.2.1需求规定 5.2.2运行环境 5.2.3基本设计概念和处理流程 5.2.4结构 5.2.5功能需求与程序的关系 5.2.6人工处理过程

汇编与接口第二章作业

1.8086/8088微处理器地址总线有多少位?寻址范围是多少? 答:20位 A0-A19。寻址范围00000H-FFFFFH 2.8086/8088微处理器分哪两部分?各部分主要由什么组成? 答:执行单元EU和总线接口单元BIU。EU包括:ALU、寄存器组、暂存器、标志寄存器、EU控制单元。BIU包括:指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制逻辑。 4.8086/8088微处理器中有几个通用寄存器?几个变址寄存器?有几个指针寄存器?通常哪几个寄存器也可以作为地址寄存器使用? 答:8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。2个变址寄存器SI、DI。2个指针寄存器SP、BP。DS、ES、SS、CS地址寄存器。 5.8086/8088微处理器中有哪些标志位?它们的含义和作用如何? 答:零标志位ZF、进位标志CF、溢出标志位OF、辅助进位标志位AF、奇偶标志位PF、符号标志位SF、方向标志位DF、中断允许标志位IF、跟踪标志TF。 6.试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别? 1278H+3469H 答:0001 0010 0111 1000 +0011 0100 0110 1001 0100 0110 1110 0001 ZF=0;SF=0;CF=0;OF=0;AF=1;PF=1。 进位表示最高位产生进位。 溢出表示超出数的表示范围。 8.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处? 答:逻辑地址:产生实际地址的两个地址分量:首地址和偏移地址。物理地址:内存单元地址。用户在编写程序时只使用逻辑地址。程序装到内存中使用物理地址。物理地址可以通过逻辑地址求得。 9.设现行数据段位于存储器的B0000H到BFFFFH存储单元,DS段寄存器内容为多少?答:DS=B000H 11.8086/8088微处理器工作在最小模式和最大模式时的主要特点是什么?有何区别? 答:最小模式只有一个CPU不需要总线控制器。最大模式有多个微处理器,必须要总线控制器来对总线控制权进行分配。引脚MN/MX=1工作在最小模式。MN/MX=0工作在最大模式。 13.80486地址总线宽度为多少?数据总线宽度为多少? 答:80486地址总线宽度为32位(分成4个块,每个块为8位字长,块有A1,A0选择)有数据总线宽度为32位。 14.现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器

相关文档
相关文档 最新文档