当前位置:文档之家› 北京理工大学汇编实验五实验报告概要

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

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

本科实验报告实验名称:子程序设计实验

实验五子程序设计实验(设计性实验)

一、实验要求和目的

1.熟悉汇编语言程序设计结构;

2.熟悉汇编语言子程序设计方法;

3.熟悉利用汇编语言子程序参数传递方法;

4.熟悉汇编语言字符串处理基本指令的使用方法;

5.掌握利用汇编语言实现字符串的输入输出程序设计方法;

6.掌握数制转换程序实现方法。

二、软硬件环境

1、硬件环境:计算机系统windows;

2、软件环境:装有MASM、DEBUG、LINK、等应用程序。

三、实验涉及的主要知识

A)子程序知识要点:

1、掌握子程序的定义语句;过

程名PROC [near/far] 过程

RET

过程名ENDP

2.子程序结构形式一个完整的子程序一般应包含下列内容:

1. )子程序的说明部分

在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法.

说明时,应含如下内容:

.子程序名:命名时要名中见意.

.子程序的功能:说明子程序完成的任务;

.子程序入口参数:说明子程序运行所需参数及存放位置;

.子程序出口参数:说明子程序运行结果的参数及存放位置;

.子程序所占用的寄存器和工作单元;

.子程序调用示例;

2、)掌握子程序的调用与返回在汇编语言中,子程序的调用用CALL,返回用RET指令

来完成。

.段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP;

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

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

保护和恢复。

一般利用堆栈实现现场保护和恢复的格式:过程名PROC

[NEAR/FAR]

PUSH AX

PUSH BX

.

.

PUSH DX

.

.

.

POP DX

.

.

.

POP AX

RET

过程名ENDP

4.子程序的参数传递方法

1.寄存器传递参数这种方式是最基本的参数传递方式。

2.存储器单元传(变量)递参数

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

3.用堆栈传递参数

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

B)字符、字符串输入输出知识要点:

在实际应用中,经常需要从键盘输入数据并将结果等内容显示到屏幕上,方便程序控制及查看结果。汇编语言的数据输入和输出分成两类,一是单个字符数据的输入输出,一是字符串数据的输入输出。都可以通过DOS功能调用来实现,下面就分别介绍下用来实现数据输入输出的功能调用的使用方法。

1、单个字符输入

单个字符输入可以利用DOS的1号功能调用来完成,使用方法为:

MOV AH,1

INT 21H

这两条语句执行后,光标会在屏幕上闪烁,等待输入数据,输入的数据以ASCII 码形式存储在AL寄存器中。

2、单个字符输出

单个字符输出可利用DOS2号功能调用来完成,使用方法为:

MOV DL,’?’

MOV AH,2

INT 21H

单个字符输出需要把要输出字符的ASCII码放在DL寄存器中。

3、字符串输入从键盘输入一串字符串可以利用DOS的10号功能调用来完成,使

用方法为:

BUF DB 50 ;预定义可以输入的最大字符个数

DB ? ;实际输入字符个数,根据输入自动统计

DB 50 DUP (?) ;存放输入字符串数据缓冲区

LEA DX,BUF

MOV AH,10

INT 21H

4、字符串输出

字符串输出可由DOS 9号功能调用来完成,使用方法为:

STRING DB ‘HELLO$’

LEA DX,STRING

MOV AH,9

I NT 21H

C)表的处理知识要点:

表的处理在实际数据处理中应用较为广泛,主要有排序、搜索、插入和删除等操作。有一些常用的冒泡法、对分搜索法等需要掌握。

四、实验内容与步骤

1、从键盘输入一串字符串(显示提示)到内存中,在该字符串的某一个指定位置,插入某一

字符或删除某一字符,并显示操作后的字符串。

程序流程图他如下:

源代码如下:

DATAS SEGMENT

STR1 DB'input strings:$'

STR2 DB'1 to Delete 0 to insert:$'

STR3 DB'input string:$'

STR4 DB'address:$'

BUF1 DB?

BUF2 DB?

A D

B 11

DB?

DB 11 DUP('$')

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS START:

main proc far

MOV AX,DATAS

MOV DS,AX

LEA DX,STR1

CALL output

LEA DX,A

MOV AH,10

INT 21H ;输入字符串保存在A 中

call CR

LEA DX,STR2

CALL output;

MOV AH,01

INT 21H

CMP AL,'0'

JZ insert

JNZ delete insert:

call CR

LEA DX,STR3

CALL output

MOV AH,01

INT 21H

MOV BUF1,AL ;输入要插入的字符

call CR

LEA DX,STR4

CALL output

MOV AH,01

INT 21H

MOV BUF2,AL ;要插入位置

call CR

call insert1

JMP L1

delete:

call CR

LEA DX,STR4

CALL output

MOV AH,01

INT 21H

MOV BUF2,AL ;要删除的位置

call CR

call delete1

JMP L1

L1:

LEA DX,A[2]

CALL output

MOV AH,4CH

INT 21H

main endp

CR proc near

MOV DL,0DH

MOV AH,02H

INT 21H

MOV DL,0AH

MOV AH,02H

INT 21H

ret

CR endp ;回车换行output proc near

MOV AH,9

INT 21H

ret

output endp ;输出

insert1 proc near

MOV BX,0

SUB BUF2,30H

MOV BL,A[1]

MOV SI,BX

INC BX

SUB BL,BUF2

MOV CX,BX

L3: MOV BL,A[SI+1]

MOV A[SI+2],BL

DEC SI

LOOP L3

MOV BL,BUF1

MOV AH,0

MOV AL,BUF2

MOV SI,AX

MOV A[SI+1],BL

ret

insert1 endp ;插入子函数delete1 proc near

MOV BX,0

SUB BUF2,30H

MOV BL,A[1]

SUB BL,BUF2

MOV CX,BX

MOV BL,BUF2

MOV SI,BX

INC SI

L4: MOV BL,A[SI+1]

MOV A[SI],BL

INC SI

LOOP L4

MOV BL,A[1]

MOV SI,BX

MOV A[SI+1],'$'

ret

delete1 endp ;删除子函数

CODES ENDS

END START

选择插入功能,运行结果如下:

选择删除功能,运行结果如下:

2、编写程序把从键盘输入的四位十六进制数,转换为十进制形式在屏幕上打印出来。程序源代码和流程图如下:

num2 DB 0,0,0,0

num22 DW 0

tempio DB 0

temp DW 0

tab DB'0123456789abcdef'

DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

assume DS:DATAS,SS:CODES,CS:CODES

START:

main proc far

MOV AX,DATAS

MOV DS,AX

MOV AX,0

LEA SI,num2

CALL input

MOV AL,tempio

SUB AL,'0'

MOV DS:[SI],AL

INC SI

CALL input

MOV AL,tempio

SUB AL,'0'

MOV DS:[SI],AL

INC SI

CALL input

MOV AL,tempio

SUB AL,'0'

MOV DS:[SI],AL

INC SI

CALL input

MOV AL,tempio

SUB AL,'0'

MOV DS:[SI],AL

CALL newline

LEA SI,num2

MOV CX,4

MOV DX,0AH

L1:

cmp DS:[SI],DL

jb L2

MOV AL,DS:[SI]

SUB AL,7

MOV DS:[SI],AL L2:

INC SI

loop L2

LEA SI,num2

MOV AH,DS:[SI]

MOV CX,4

shl AH,CL

INC SI

MOV BL,DS:[SI]

ADD AH,BL

INC SI

MOV AL,DS:[SI]

MOV CX,4

shl AL,CL

INC SI

MOV BL,DS:[SI]

ADD AL,BL

MOV num22,AX MOV DX,0 MOV CX,2710h DIV CX

MOV temp,DX ADD AX,'0' MOV tempio,AL CALL output MOV AX,temp MOV DX,0 MOV CX,3e8h DIV CX

MOV temp,DX ADD AX,'0' MOV tempio,AL CALL output MOV AX,temp MOV DX,0 MOV CX,64h DIV CX

MOV temp,DX

ADD AX,'0'

MOV tempio,AL

CALL output

MOV AX,temp

MOV DX,0

MOV CX,0AH

DIV CX

MOV temp,DX

ADD AX,'0'

MOV tempio,AL

CALL output

MOV AX,temp

ADD AX,'0'

MOV tempio,AL

CALL output

CALL newline

CALL newline

MOV AH,4ch

int 21h

main endp

input proc near

MOV AH,1

int 21h

MOV tempio,AL

ret

input endp ;输入函数newline proc near

MOV AH,2

MOV DL,0dh

int 21h

MOV AH,2

MOV DL,0AH

int 21h

ret

newline endp ;回车换行output proc near

MOV AH,2

MOV DL,tempio

int 21h

ret

output endp ;输出函数CODES ENDS

END START

运行程序如下:

经验证结果正确

3、从键盘输入(显示提示)十个2位十进制数(正数)到内存中,按从小到大排序,然后把

该数以十六进制形式在屏幕上打印出来。

流程图及源代码如下:

DATAS SEGMENT

BUF DB 40

DB?

DB 40 DUP(0)

SHUZI DB 10 DUP(0)

BIAO DW 0

STRING DB'input 10 numbers:$'

DATAS ENDS Array STACKS SEGMENT

STA DW 20H DUP(0)

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

main proc far

MOV AX,DATAS

MOV DS,AX

MOV AX,STACKS

MOV SS,AX

LEA BX,STRING ;输出

CALL output

CALL HUICHE

CALL input ;输入10个十进制数

CALL HUICHE

CALL change ;将ASCII码转换

CALL paixu ;将其排序

LEA SI,BUF

ADD SI,5

MOV DI,10

ABC:

MOV AL,[SI]

CALL output16 ;将16进制数输出

CALL kongge

ADD SI,3

DEC DI

JNZ ABC

MOV AH,4CH

INT 21H

main endp

output proc near ;输出字符串

MOV DX,BX

MOV AH,09H

INT 21H

RET

output endp

input proc near ;输入字符串LEA DX,BUF

MOV AH,0AH

INT 21H

RET input endp

HUICHE proc near ;回车换行

MOV DL,0DH

MOV AH,02H

INT 21H

MOV DL,0AH

MOV AH,02H

INT 21H

RET

HUICHE endp

change proc near ;ASCII码转换

LEA SI,BUF

ADD SI,2

MOV CX,10

L1: AND BYTE PTR [SI],0FH

INC SI

AND BYTE PTR [SI],0FH

ADD SI,2

LOOP L1 ;变成十进制

LEA SI,BUF

ADD SI,2

MOV BL,10

MOV CX,10

L2: MOV AL,[SI]

MUL BL ;变成实际数字

ADD AL,[SI+1]

MOV [SI],AL

ADD SI,3

LOOP L2

RET

change endp

paixu proc near ;排序

LEA SI,BUF

ADD SI,2

LEA DI,BUF

ADD DI,5

MOV CX,10

MOV AL,[SI]

L3:

MOV DI,CX

MOV BX,2

L4:

MOV AL,BUF[BX]

CMP AL,BUF[BX+3]

JBE CONTINUE

XCHG AL,BUF[BX+3]

MOV BUF[BX],AL CONTINUE:

ADD BX,3

LOOP L4

MOV CX,DI

LOOP L3

RET

paixu endp

output16 proc near;显示16进制数字MOV CL,4

MOV DL,AL

SHR DL,CL

MOV BIAO,AX

CALL exchange

MOV AX,BIAO

MOV DL,AL

AND DL,0FH

CALL exchange

RET

output16 endp

exchange proc near CMP DL,9

JA NOTDIG

OR DL,30H

JMP FINAL NOTDIG:

ADD DL,37H FINAL:

MOV AH,02H

INT 21H

RET

exchange endp

kongge proc near ;输出空格MOV DL,20H

MOV AH,02H

INT 21H

RET kongge endp CODES ENDS END START

运行结果如下:

4、英文人名排序。从终端键入20个人名,当所有人名都键入后,按字母上升的次序将人名排

序,并在屏幕上显示已经排好序的人名。

流程图如下:

源代码如下:DATAS SEGMENT

buf4 DB 460 dup('$')

bp4 DW 20 dup(0)

mark DB'@@'

num2 DW 20

num3 DW 19

temp DW 0

DATAS ENDS

STACKS SEGMENT

北京理工大学汇编语言实验六磁盘文件存取实验报告

第六章磁盘文件存取实验(设计性实验) 一、实验要求和目的 1.理解文件、目录的概念; 2.了解FCB(文件控制块)方式文件管理方法; 3.掌握文件代号式文件存取方式; 4.学习使用文件指针读取文件 二、软硬件环境 1.硬件环境:计算机系统windows; 2.软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识单元 DOS功能调用中断(INT 21H)提供了两类磁盘文件管理功能,一类是FCB(文件控制块)方式,另一类是文件代号式存取方式。 对于文件的管理,实际上是对文件的读写管理,DOS 设计了四种存取文件 方式:顺序存取方式、随机存取方式、随机分块存取方式和代号法存取方式。文件的处理步骤 A)写之前必须先建立文件、读之前必须先打开文件。 B)写文件之后一定要关闭文件。通过关闭文件,使操作系统确认此 文件放在磁盘哪一部分,写后不关闭会导致写入文件不完整。 1、文件代号式存取方式: 当用户需要打开或建立一个文件时,必须提供文件标识符。文件标识符用ASCII Z 字符串表示。ASCII Z 字符串是指文件标识符的ASCII 字符串后面再加1 个“0”字符。文件标识符的字符串包括驱动器名、路径名和文件名。其格式为 [d:][path]filename[.exe] 其中d 为驱动器名,path 为路径名,.exe 为文件名后缀。 中断 21H 提供了许多有关目录和文件操作的功能,其中文件代号式存取方式常用的功能如下: 2、操作目录的常用功能 39H——创建目录 3BH——设置当前目录 3AH——删除目录 47H——读取当前目录 有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅相关资料 之目录控制功能。 3、用文件句柄操作文件的常用功能 3CH——创建文件 4EH——查找到第一个文件 3DH——打开文件 4FH——查找下一个文件 3EH——关闭文件 56H——文件换名 3FH——读文件或设备 57H——读取/设置文件的日期和时间 40H——写文件或设备 5AH——创建临时文件 41H——删除文件 5BH——创建新文件

北京理工大学汇编实验报告3

北京理工大学汇编实验报告3

本科实验报告实验名称:实验三字符串操作实验 课程名称: 课程设计Ⅰ(CPU与汇编)(实 验)实验时间: 第5-10周周五 下午 任课教师:聂青实验地点:10-102 实验教师:苏京霞 实验类型:?原理验证□综合设计□自主创新 学生姓名:罗逸雨 学号/班级:1120141208 05211401 组号:3 学院:信息与电子学院同组搭档: 专业:通信工程成绩:

CX 中值减 1,当 CX 中值减至 0 时,停止重复执行,继续执行下一条指令。当REP无条件重复前缀,重复串操作直到计数寄存器的内容 CX 为0为止。经常与REP 配合工作的字符串处理指令有MOVS、STOS和LODS。 当REPE/REPZ判断计数寄存器的内容 CX 是否为0或ZF=0(即比较的两个操作数不等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 当REPNE/REPNZ判断计数寄存器的内容是否为0或ZF=1(即比较的两个操作数相等),只要满足一个则重复执行结束,否则继续执行。可以与 REPE/REPZ 配合工作的串指令有CMPS和SCAS。 3)字符串操作指令 lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据 DF 标志增减 SI; stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据 DF 标志增减 DI; movsb、movsw:把 DS:SI 指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据 DF标志分别增减SI和DI; scasb、scasw:把AL或AX 中的数据与ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; cmpsb、cmpsw:把DS:SI 指向的存储单元中的数据与 ES:DI 指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI; rep:重复其后的串操作指令。重复前先判断 CX 是否为0,为0就结束重复,否则CX减1,重复其后的串操作指令。主要用在MOVS和STOS前。一般不用在 LODS 前。 上述指令涉及的寄存器:段寄存器DS和ES、变址寄存器SI和DI、累加器 AX、计数器CX。 涉及的标志位:DF、AF、CF、OF、PF、SF、ZF。 三、实验步骤 1) 编写程序,比较两个字符串BUF1和BUF2所含的字符是否相同,相同则AL 返回0,不同AL返回1,字符串长度要求自动获取,要求用字符串处理方法。提示:输入两个字符串之后,将串操作所必须的寄存器等参数设置好,然后使用串操作指令进行从头到尾的比较,两个字符串相等的条件是串长度相等且对应的字符相同。 2) 编写程序,设有一字符串存放在以BUF为首址的数据区中,其最后一字符‘$’作为结束标志,计算该字符串的长度并输出。提示:从串的第一个字符开始统计,直到遇到定义的字符串结束符为止,看看在这个过程中总共有多少个字符,

北京理工大学汇编实验五

一、实验目的 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、调用子程序时寄存器及所用存储单元内容的保护。如果子程序中要用到某些寄存器 或存储单元时,为了不破坏原有的信息,要将寄存器或存储单元的原有内容压栈保 护,或存入子程序不用的寄存器或存储单元中。 C、用于中断服务的子程序则一定要把保护指令安排在子程序中,这是因为中断是随机 出现的,因此无法在主程序中安排保护指令。 D、调用程序在调用子程序时需要传送一些参数给子程序,这些参数是子程序运算中所 需要的原始数据。子程序运行后要将处理结果返回调用程序。原始数据和处理结果 的传递可以是数据,也可以是地址,统称为参数传递。 E、参数传递必须事先约定,子程序根据约定从寄存器或存储单元取原始数据(称入口 参数);进行处理后将处理结果(称出口参数)送到约定的寄存器或存储单元,返回到调用程序。参数传递一般有下面三种方法:用寄存器传递:适用于参数传递较少、

2003-2016年北京理工大学889数据结构考研真题及答案解析 汇编

2017版北京理工大学《889数据结构》全套考研资料 我们是布丁考研网北理工考研团队,是在读学长。我们亲身经历过北理工考研,录取后把自己当年考研时用过的资料重新整理,从本校的研招办拿到了最新的真题,同时新添加很多高参考价值的内部复习资料,保证资料的真实性,希望能帮助大家成功考入北理工。此外,我们还提供学长一对一个性化辅导服务,适合二战、在职、基础或本科不好的同学,可在短时间内快速把握重点和考点。有任何考北理工相关的疑问,也可以咨询我们,学长会提供免费的解答。更多信息,请关注布丁考研网。 以下为本科目的资料清单(有实物图及预览,货真价实): 2017年北理工《数据结构》全套资料包含: 一、北京理工大学《数据结构》历年考研真题 2016年北理工《数据结构》考研真题 2015年北理工《数据结构》考研真题 2014年北理工《数据结构》考研真题 2013年北理工《数据结构》考研真题 2008年北理工《数据结构》考研真题 2007年北理工《数据结构》考研真题 2006年北理工《数据结构》考研真题 2005年北理工《数据结构》考研真题 2004年北理工《数据结构》考研真题 2003年北理工《数据结构》考研真题 二、北京理工大学889《数据结构》考研经验总结。 注意了:北理工889数据结构是近几年开始的科目,以前都是跟其他科目综合考试,2008年之后真题为回忆版,请大家了解好了再买,这些都是纯真题,买后不能退款。 三、北理工《数据结构》期末试题10套及答案。... 四、北理工《数据结构》考研复习提纲。 五、北理工《数据结构》考研题库及答案。 六、、严蔚敏《数据结构》全套教学视频48课时。(电子版) 七、、严蔚敏《数据结构》课后习题答案。 以下为截图及预览: 2007年真题

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告) 内容: 实验一、六、七、八 院系专业:计算机学院计算机科学与技术 姓名:xxxxxxxxx 学号: 2011004xxxxx 完成时间:2012年12月1日

计算机组成与汇编语言实验报告 姓名xxxx 学号2011004xxxxx 计分 专业软件工程班级xxxx 实验日期2012年 12 月 1日实验名称实验一数制转换 实验目的 ●熟悉各种进制数据之间的相互转换方法。 ●掌握二-十进制数据的相互转换程序设计。 实验内容 1.将编写好的程序1输入、编译、连接并运行。 程序1清单 #include #include #include void main() { int i,l,s0=0,s=0; char a[17]; while(l!=16) { printf("请输入一个16位的二进制数:\n"); gets(a); l=strlen(a); for(i=0;i<16;i++) { if(a[i]!='0'&&a[i]!='1') {

printf("输入的二进制数不正确!!"); break; } } } if(a[15]=='1') s++; for(i=1;i<16;i++) { if(a[15-i]=='1') s+=(1<

说明:如果不是16位二进制则会提示错误。 2.将编写好的程序2输入、编译、连接并运行。 程序2清单 #include #include void main() { int t0,t1,t2,t3,i,j; int a[16]; printf("请输入一个十进制数:"); scanf("%d",&t0); t1=t0; for(i=0;i<16;i++) { t2=t1/2; if(t2>1) a[i]=t1%2; else if(t1==1) { a[0]=1; for(i=1;i<16;i++) a[i]=0; } else if(t1==2) { a[i]=0; a[i+1]=1; for(j=i+2;j<16;j++)

北京理工大学2012-2013学年第一学期工科数学分析期末试题(A卷)试题2012-2(A)

1 北京理工大学2012-2013学年第一学期 工科数学分析期末试题(A 卷) 一. 填空题(每小题2分, 共10分) 1. 设?????<≥++=01arctan 01)(x x x x a x f 是连续函数,则=a ___________. 2. 曲线θρe 2=上0=θ的点处的切线方程为_______________________________. 3. 已知),(cos 4422x o bx ax e x x ++=- 则_,__________=a .______________=b 4. 微分方程1cos 2=+y dx dy x 的通解为=y __________________________________. 5. 质量为m 的质点从液面由静止开始在液体中下降, 假定液体的阻力与速度v 成正比, 则质点下降的速度)(t v v =所满足的微分方程为_______________________________. 二. (9分) 求极限 21 0)sin (cos lim x x x x x +→. 三. (9分) 求不定积分?+dx e x x x x )1arctan (12. 四. (9分) 求322)2()(x x x f -=在区间]3,1[-上的最大值和最小值. 五. (8分) 判断2 12arcsin arctan )(x x x x f ++= )1(≥x 是否恒为常数. 六. (9分) 设)ln(21arctan 22y x x y +=确定函数)(x y y =, 求22,dx y d dx dy . 七. (10分) 求下列反常积分. (1);)1(1 22?--∞+x x dx (2) .1)2(1 0?--x x dx 八. (8分) 一垂直立于水中的等腰梯形闸门, 其上底为3m, 下底为2m, 高为2m, 梯形的上底与水面齐平, 求此闸门所受 到的水压力. (要求画出带有坐标系的图形) 九. (10分) 求微分方程x e x y y y 3)1(96+=+'-''的通解. 十. (10分) 设)(x f 可导, 且满足方程a dt t f x x x f x a +=+?)())((2 ()0(>a , 求)(x f 的表达式. 又若曲线 )(x f y =与直线0,1,0===y x x 所围成的图形绕x 轴旋转一周所得旋转体的体积为,6 7π 求a 的值. 十一. (8分) 设)(x f 在]2,0[上可导, 且,0)2()0(==f f ,1sin )(1 21 =?xdx x f 证明在)2,0(内存在ξ 使 .1)(='ξf

北京理工大学汇编语言实验报告实验五 子程序设计实验

实验五子程序设计实验(设计性实验) 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言子程序设计方法; 3.熟悉利用汇编语言子程序参数传递方法; 4.熟悉汇编语言字符串处理基本指令的使用方法; 5.掌握利用汇编语言实现字符串的输入输出程序设计方法; 6.掌握数制转换程序实现方法。 二、软硬件环境 1、硬件环境:计算机系统windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 A)子程序知识要点: 1、掌握子程序的定义语句; 过程名 PROC [near/far] 过程体 RET 过程名 ENDP 2.子程序结构形式 一个完整的子程序一般应包含下列内容: 1. )子程序的说明部分 在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法. 说明时,应含如下内容: .子程序名:命名时要名中见意. .子程序的功能:说明子程序完成的任务; .子程序入口参数:说明子程序运行所需参数及存放位置; .子程序出口参数:说明子程序运行结果的参数及存放位置; .子程序所占用的寄存器和工作单元; .子程序调用示例; 2、)掌握子程序的调用与返回 在汇编语言中,子程序的调用用CALL,返回用RET 指令来完成。 .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP; .段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。 3.)子程序的现场保护与恢复 保护现场:在子程序设计时,CPU 内部寄存器内容的保护和恢复。 一般利用堆栈实现现场保护和恢复的格式: 过程名PROC [NEAR/FAR]

北京理工大学2017-2018学年工数上期末试题A及标准答案

课程编号:H0172103 北京理工大学2017-2018学年第一学期 工科数学分析(上)期末试题(A 卷) 座号 _______ 班级_____________ 学号_____________ 姓名_____________ (试卷共6页,十个大题. 解答题必须有过程. 试卷后面空白纸撕下做草稿纸. 试卷不得拆散.) 1.若 e x x kx x 1 )2( lim =-∞ → ,则=k . 2.已知,arctan 2111ln 41x x x y --+= 则=dx dy . 3. =-+?dx xe x e x x 1 02 ) 1() 1( . 4 . =?xdx x sin 2 . 5. 设x y y cos =+',则=y . 二、计算题(每小题5分,共20分) 1.求极限 ).2 sin 211(sin lim 3n n n n -∞→ 2. 设 x x y x 2sin sin +=,求dy . 3. 计算 dx x x x x ? -++1 1 2 211cos 2-. 4.求)cos(y x dx dy +=的通解. 三、(8分)已知0)-1(lim 2 =-+-+∞ →b ax x x x ,试确定常数a 和b 的值. 四、(6分)已知,...).2,1)((21,0,011=+= >>+n b b b b b b n n n 证明: 数列{}n b 极限存在;并求此极限. 五、(8分)求函数2) 1(42 -+= x x y 的单调区间和极值,凹凸区间和拐点,渐近线. 六、(8分)设曲线2x y =,x y =围成一平面图形D .

(1) 求平面图形D 的面积; (2) 求平面图形D 绕y 轴旋转所得旋转体的体积. 七、(8分)设一长为l 的均匀细杆,线密度为μ,在杆的一端的延长线上有一质量为m 的质点,质点与该端的距离为a . (1)求细杆与质点间的引力; (2)分别求如果将质点由距离杆端a 处移到b 处(b a >)与无穷远处时克服引力所 做的功. 八、(8分)设)(x f 在]1,1[-上具有三阶连续导数,且,0)0(,1)1(,0)1('===-f f f 证明在开区间)1,1(-内至少存在一点ξ,使3)()3(=ξf . 九、(8分)设?-+ =x x dt t f t x xe x f 0)()()(, 其中)(x f 连续,求)(x f 的表达式. 十、(6分)已知)(x f 在闭区间[]6,1上连续,在开区间)6,1(内可导,且 ,5)1(=f ,1)5(=f .12)6(=f 证明:存在)6,1(∈ξ,使 22)()(=-+'ξξξf f 成立. 北京理工大学2017-2018学年第一学期《工科数学分析》(上)期末试题(A 卷) 标准答案及评分标准 2018年1月12日 一、填空(每小题4分,共20分) 1. 21 2.42 1x x - 3. )(,不收敛+∞∞ 4 . C x x x x x +++-cos 2sin 2cos 2 5. x ce x x y -++= )cos (sin 2 1 二、计算题(每小题5分,共20分) 1. 解:)2 sin 211(sin lim 3x x x x -∞→ 3 12sin 211sin lim x x x x -=∞→ x t 1=令 30) 2sin(21 sin lim t t t t -=→ …………. 2分 2 0cos 1sin lim t t t t t -?=→21= …………. 4分 2 1 )2sin 211(sin lim 3=-∴∞→n n n n …………. 5分

北京理工大学汇编试题

一、数制转换,以下数为带符号数,表达成字节或字的形式:(10分) (-327)10 = ()2 (70b6)16=()10 (11010001)2 =()10 (0101010101011001)2=()10 ( 2572)10 =()16 二、指出划线部分的寻址方式,并计算其物理地址:(10分) 已知: (CS)=2100H, (DS)=2400H, (ES)=2800H, (SS)=2600H, (BX)=0600H, (DI)=0200H, (SI)= 0300H, (BP)=0400H, BUF=1000H 1、MOV CL ES:[1500H] ;寻址方式:物理地址: 2、CMP SI, [DI] ;寻址方式:物理地址: 3、ADD AX, BUF [BP] [SI] ;寻址方式:物理地址: 4、CALL WORD PTR CS:[SI] ;寻址方式:物理地址: 5、LEA DX, [BX+SI] ;寻址方式:物理地址: 三、已知一程序数据段如下,请在右边表格中填写该数据段数据存储的形式。(12 分,未初始化的单元填写“xx”) DATA SEGMENT Array C=50H BUFFER DB 'B',0BH, B_BYTE LABEL BYTE DATA1 DW 0FFAAH ORG $+1 DATA2 DW B_BYTE DATA3 DW C DATA4 DB 3 DUP(20H),0FFH DATA ENDS 四、写出下列程序段的运行结果,并逐条注释每条指令。

1. 该程序段执行后,BX= .,为什么?(用图表示)(9分)ADDR DW PROC0,PROC1,PROC2,PROC3,PROC4,PROC5,PROC6 DW PROC7,PROC8,PROC9 LEA SI,ADDR ADD SI,2 MOV BX,[SI] INC SI INC SI PUSH BX MOV AX,[SI] INC SI INC SI PUSH AX PUSH BP MOV BP,SP MOV DX,[BP+2] CALL [SI] … PROC1 PROC MOV BX,1 RET PROC1 ENDP PROC2 PROC MOV BX,2 RET PROC2 ENDP PROC3 PROC MOV BX,3 RET PROC3 ENDP 余此类推… (9分)2. 下面这段程序的功能是。

汇编实验报告

XXXX大学 实验报告 课程名称汇编语言程序设计成 绩 实验学时 评语: 指导教师: 年月日 班级: 学号: 姓名: 地点: 时间:

实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握DOS功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验内容 1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完 成必要提示信息的显示。 2. 在屏幕上显示自己的学号姓名信息。 3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输 入”Q”或“q”时结束。 4. 实验中使用的DOS功能调用: INT 21H AH 值功能调用参数结果 1 键盘输入并回显AL=输出字符 2 显示单个字符(带Ctrl+Break检查) DL=输出字符光标在字符后面 6 显示单个字符(无Ctrl+Break检查) DL=输出字符光标在字符后面 8 从键盘上读一个字符AL=字符的ASCII码 光标跟在串后面 9 显示字符串DS:DX=串地址, ‘$’为结束字符 4CH 返回DOS系统AL=返回码 例如,实现键盘输入并回显的完整代码: MOV AH 01H INT 21H 三、实验结果 1. 将指定数据区的字符串数据”Let us go !”以ASCII码形式显示在屏幕上,并通过 DOS功能调用完成必要提示信息的显示: 2. 在屏幕上显示自己的学号姓名信息 3.循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输 入”Q”或“q”时结束。

四、实验原理 DATA SEGMENT MES DB 'NUMBER: 03099018 ',0AH,0DH,'NAME: Feng Xiaokang',0AH,0DH,'$' CENT DB 'Let us go !','$' ENTE DB 0AH,0DH,'$' INFO DB 'Origin: ','$' ASCI DB 'ASCII : ','$' MSG1 DB 'If you want to quit please press...q/Q...',0AH,0DH,'$' MSG2 DB 0AH,0DH,'Char: $' RS DB ' ASCII: $' SD DB '' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;存储数据 MOV DS,AX MOV DX,OFFSET MES ;显示数据 MOV AH,09H INT 21H MOV DX,OFFSET MSG1 MOV AH,09H INT 21H MOV DX, OFFSET CENT MOV SI, DX T: MOV AL,[SI] CMP AL,'$' JZ C1 AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB A ADD AL,07H A: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H

北京理工大学 离散数学I 期末测试

课程编号:MTH07034 北京理工大学2015-2016学年第二学期 2015级离散数学期末试题(A卷) 班级学号姓名成绩 1.选择题(共10题, 每题1分) 1)设p:我有时间,q:我去旅游,下面哪个命题可以符号化为p→q?( ) A. 除非我有时间,我才去旅游. B. 除非我去旅游,否则我没时间. C. 只有我有时间,我才去旅游. D. 我去旅游仅当我有时间. 2)设C(x)表示x是运动员,G(x)表示x是强壮的,则命题“没有运动员不是 强壮的”符号化为哪个公式?( ) A. ??x(C(x)∧?G(x)) B.??x(C(x)→?G(x)) C. ??x(C(x)∧?G(x)) D.??x(C(x)→?G(x)) 3)设F(x)表示x是火车,G(y)表示y是汽车,H(x,y)表示x比y快,则命题“有 的汽车比所有的火车快”符号化为下面哪个公式?( ) A. ?y(G(y)→?x(F(x)∧H(x,y))) B. ?y(G(y)∧?x(F(x)→H(y,x))) C. ?x?y(G(y)→(F(x)∧H(x,y))) D. ?y(G(y)→?x(F(x)→H(x,y))) 4)下列推理哪个是不正确的?( ) A. 前提:?p∨ (q→r), ?s∨p, q结论:s→r B. 前提:(p∨q)→ (r∧s), (s∨t)→u结论:p→u C. 前提:(p∧q) →r, r→s, ?s∧p结论:q D. 前提:p→ (q→r), p , q结论:r∨s 5)下面哪个命题公式是永真式?( ) A. (p∨q) →?r B. (q→p)∧q→p C. ?(?p∨q)∧q

北京理工大学汇编实验二报告

北京理工大学汇编实验二报告

本科实验报告实验名称:算术运算类操作实验

一、实验要求和目的 1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式; 2、掌握各类运算类指令对各状态标志位的影响及测试方法; 3、熟悉汇编语言二进制多字节加减法基本指令的使用方法; 4、熟悉无符号数和有符号数乘法和除法指令的使用; 5、掌握符号位扩展指令的使用。 6、掌握 BCD 码调整指令的使用方法 二、软硬件环境 1、硬件环境:计算机系统 windows; 2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 1、加减法处理指令 主要有加法指令 ADD,带进位加法 ADC,减法指令 SUB,带进位减法指令 SBB。 2.乘除法指令和符号位扩展指令 主要有无符号数乘法指令MUL,带符号数乘

法指令IMUL,无符号数除法指令DIV,带符号数除法指令 IDIV,以及符号位从字节扩展到字的指令 CBW 和从字扩展到双字的指令 CWD。 3.BCD 码的调整指令 主要有非压缩的BCD 码加法调整指令DAA,压缩的 BCD 码减法调整指令 DAS,非压缩的 BCD 码加法调整指令 AAA,非压缩的 BCD 码减法调整指令 AAS,乘法的非压缩 BCD码调整指令 AAM,除法的非压缩 BCD 码调整指令 AAD。 8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表 1 所示的数据类型进行数据运算。 表 1-2-1 数据类型数据运算表

四、实验内容与步骤 1、对于两组无符号数,087H 和 034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:(1)实验流程 将一组 操作数 分别用 ADD,SUB,MUL,DIV 运算 (2)实验代码: DATAS SEGMENT BUF1 DB 087H BUF2 DB 034H BUF3 DB 4 DUP(?);此处输入数据段代码 DATAS ENDS

汇编实验报告..

合肥工业大学计算机与信息学院 实验报告 课程:汇编语言程序设计专业班级: 学号: 姓名:

实验一Debug程序的使用 一.实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 二.实验内容 1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 三.实验过程和程序 1、启动DOS操作系统 2、运行https://www.doczj.com/doc/385660778.html,程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令) 3、用“A”命令编辑和汇编源程序 –A ↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙ 186E:0116 ↙ 4、用“U”命令反汇编验证源程序 –U CS:0100↙ 186E:0100 A10002 MOV AX,[0200] 186E:0103 8B1E0202 MOV BX,[0202] 186E:0107 03060402 ADD AX,[0204] 186E:010B 131E0602 ADC BX,[0206] 186E:010F A30802 MOV [0208],AX 186E:0112 891E0A02 MOV [020A],BX 186E:0116 – 注意:

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

本科实验报告实验名称:子程序设计实验

实验五子程序设计实验(设计性实验) 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言子程序设计方法; 3.熟悉利用汇编语言子程序参数传递方法; 4.熟悉汇编语言字符串处理基本指令的使用方法; 5.掌握利用汇编语言实现字符串的输入输出程序设计方法; 6.掌握数制转换程序实现方法。 二、软硬件环境 1、硬件环境:计算机系统windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 A)子程序知识要点: 1、掌握子程序的定义语句;过 程名PROC [near/far] 过程 体 RET 过程名ENDP 2.子程序结构形式一个完整的子程序一般应包含下列内容: 1. )子程序的说明部分 在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法. 说明时,应含如下内容: .子程序名:命名时要名中见意. .子程序的功能:说明子程序完成的任务; .子程序入口参数:说明子程序运行所需参数及存放位置; .子程序出口参数:说明子程序运行结果的参数及存放位置; .子程序所占用的寄存器和工作单元; .子程序调用示例; 2、)掌握子程序的调用与返回在汇编语言中,子程序的调用用CALL,返回用RET指令 来完成。 .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP; .段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。 3.)子程序的现场保护与恢复保护现场:在子程序设计时,CPU内部寄存器内容的

保护和恢复。 一般利用堆栈实现现场保护和恢复的格式:过程名PROC [NEAR/FAR] PUSH AX PUSH BX . . PUSH DX . . . POP DX . . . POP AX RET 过程名ENDP 4.子程序的参数传递方法 1.寄存器传递参数这种方式是最基本的参数传递方式。 2.存储器单元传(变量)递参数 这种方法是在主程序调用子程序前,将入口参数存放到约定的存储单元中;子程序运行时到约定存储位置读取参数;子程序执行结束后将结果也放在约定存储单元中。 3.用堆栈传递参数 利用共享堆栈区,来传递参数是重要的的方法之一。 B)字符、字符串输入输出知识要点: 在实际应用中,经常需要从键盘输入数据并将结果等内容显示到屏幕上,方便程序控制及查看结果。汇编语言的数据输入和输出分成两类,一是单个字符数据的输入输出,一是字符串数据的输入输出。都可以通过DOS功能调用来实现,下面就分别介绍下用来实现数据输入输出的功能调用的使用方法。 1、单个字符输入 单个字符输入可以利用DOS的1号功能调用来完成,使用方法为: MOV AH,1 INT 21H 这两条语句执行后,光标会在屏幕上闪烁,等待输入数据,输入的数据以ASCII 码形式存储在AL寄存器中。 2、单个字符输出 单个字符输出可利用DOS2号功能调用来完成,使用方法为: MOV DL,’?’ MOV AH,2

汇编语言实验报告

汇编语言实验报告 专业: 班级: 姓名: 学号: 2011年12月14日

目录 实验1 利用DEBUG调试汇编语言程序段 (3) 实验2 初级程序的编写与调试实验(一) (11) 实验3 初级程序的编写与调试实验(二) (20) 实验4 汇编语言程序上机过程 (28) 实验5 分支程序实验 (33) 实验6 循环程序实验 (40) 实验7 子程序实验 (45)

实验1 利用DEBUG调试汇编语言程序段一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验内容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗口 2)在命令窗口中输入dubug进入debug程序 3)进入debug窗口后,输入q命令退出debug 2.学会DEBUG中的 1)D命令(显示内存数据D 段地址:偏移地址) 例1:-D100;显示DS段, 0100开始的128个节内容

说明:指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。 ①DSEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容. ② D SEGREG[段地址:偏移地址] ;显示SEGREG段中(缺省内默认为DS), [段地址:偏移地址]开始的[L 长度] (缺省内默认为128)个字节内容 -D ;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节内容 -D CS:200 ;显示CS段, 0200H开始的128个字节内容 -D 200:100 ;显示DS段, 0200:0100H开始的128个字节内容

北京理工大学汇编语言练习题及答案1

一、 1.请任意输入一个字符串,将该串倒序后在屏幕上显示。 DATAS SEGMENT BUF DB 40 DB ? DB 40 DUP(0) ACC DB 0 CHAR DB ? DATAS ENDS STACKS SEGMENT DB 100 DUP(0) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV AH,0AH LEA DX,BUF INT 21H ; 输入字符串 MOV AH,0EH MOV AL,0DH INT 10H MOV AL,0AH INT 10H ;回车换行 LEA SI,BUF MOV AL,[SI+1] MOV AH,0 MOV ACC,AL INC SI ADD SI,AX L1: MOV DL,[SI] MOV AH,02H INT 21H DEC SI DEC ACC CMP ACC,0 JNZ L1 MOV AH,4CH INT 21H CODES ENDS END START 2.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。 DATA SEGMENT BUF DB 100 DB ? DB 100 DUP(?) CHAR DB 0 ACC DB 0 SPACE DB 0 CHARA DB 0 DATA ENDS STACK SEGMENT DB 100 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE MAIN PROC FAR MOV AX,DA TA MOV DS,AX LEA DX,BUF MOV AH,0AH INT 21H ;输入 字符串 MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H LEA SI,BUF MOV AL,[SI+1] MOV ACC,AL MOV SI,2 L: CMP BUF[SI],' ' JZ LSPACE CMP BUF[SI],'A' JZ LCHARA INC SI DEC ACC CMP ACC,0 JZ SHOW JMP L LSPACE:

汇编实验报告

汇编语言程序设计 实验报告 学号:100511530 班级:电气信息类1005 姓名:陆淑琴 指导老师:李诗高

实验一、汇编语言上机的基本过程及环境 【实验目的】 (1)熟悉汇编语言的编辑、汇编、连接及调试的全过程,重点掌握使用DEBUG调试程序的方法。 (2)了解汇编语言的程序结构。 【实验内容】 (1)在数据段中定义两个数(数据自拟,包含有正数和负数),要求编写程序分别计算出这两个数的和、差、积、商,并用Debug的相关命令查询计算结果(包括对CF,OF,SF,ZF的影响)。 (2)首先对AX,BX,CX寄存器赋初值(数据自拟),再将AX寄存器的中间八位,BX的低四位和CX的高四位拼接成一个新的字,并把结果存入偏移地址为0000H的存储单元。其中BX的低四位作为结果字的高四位,CX的高四位作为结果字的低四位。并用Debug的相关命令查询内存单元的结果字。 源代码: DA TA SEGMENT val1 DW 1000h val2 DW 2000h maxv DW ? DA TA ENDS STACK SEGMENT STACK 'STACK'

DB 100H DUP(?) STACK ENDS CODE SEGMENT 'CODE' ASSUME CS:CODE, DS:DATA,SS:STACK .386 MAIN: MOV AX, DATA; MOV DS, AX PUSH val1 PUSH val2 CALL MAX ; POP maxv ;栈顶返回值出栈 MOV AX, 4c00H INT 21H MAX PROC PUSH BP ;执行该指令前堆栈情况 MOV BP, SP ;执行后堆栈情况 MOV AX, [BP+4] CMP AX, [BP+6] JA EXIT MOV AX, [BP+6] EXIT: MOV [BP+6], AX ;用栈顶返回值 POP BP RET 2 ;执行后堆栈情况 MAX ENDP CODE ENDS END MAIN 【实验步骤】 (1)用编辑软件(记事本、UltraEdit等)编辑一个扩展文件名为ASM的汇编语言源程序。 (2)用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件。(扩展名为OBJ) (3)用连接程序LINK连接目标代码文件,形成可执行文件。(扩展名为EXE)(4)用DEBUG32调试可执行文件,观察执行结果,以验证其正确性。

北京理工大学2019年成教期末考试题

2016-2017第一学期模拟题一 闭卷120分钟,每题2分,满分100分。 1. 单选:图灵在计算机科学方面的主要贡献有两个:一是建立图灵机模型,奠定了()理论的基础;二是提出图灵测试,阐述了机器智能的概念。 A 可计算; B 可推导; C 可进化; D 可预知 2. 单选:冯.诺依曼在EDVAC中采用了()的概念,以此为基础的各类计算机统称为冯.诺依曼计算机。 A 存储数据; B 核心计算; C 存储程序; D 进程 3. 单选:目前,大家公认的第一台电子计算机是在1946年2月由宾夕法尼亚大学研制的()。 A ALPHA; B BETA; C ENIAC; D FAST 4. 单选:第三代电子计算机是()计算机。 A 电子管; B 晶体管; C 逻辑管; D 集成电路 5. 单选:1971年intel公司的马西安.霍夫,制成世界上第一片4位微处理器intel ()。 A 4004; B 8086; C 6800; D 8051 6. 单选:计算机由5个基本部分构成:运算器、()、存储器、输入设备、输出设备。 A 控制器; B 计时器; C 寄存器; D 计数器 7. 单选:运算器的主要功能是进行算术和()运算。 A 关系; B 逻辑; C 布尔; D 顺序 8. 单选:各种内存储中,断电后,RAM中的信息将全部消失,而()中的信息不会丢失。 A CACHE; B HDD; C SSD; D ROM 9.

单选:外部存储器,又称为外存或者辅存,主要用来存放()的程序和数据。 A 暂时不用; B 正在执行; C 容量较大; D 格式复杂 10. 单选:()既属于输入设备,又属于输出设备。 A 显示器; B 扫描仪; C 触摸屏; D 打印机 11. 单选:一台计算机的所有指令的集合称为该计算机的()。 A 程序系统; B 指令系统; C 运算系统; D 核心系统 12. 单选:某进制数数制中每一固定位置对应的单位值称为()。 A 幂; B 位权; C 指数; D 尾数 13. 单选:不同数制都使用()表示法,即处于不同位置的数码所代表的值不同,与它所在位置的权值有关。 A 位置; B 补码; C 内码; D 反码 14. 单选:1001B转换为十进制数为()。 A 7; B 8; C 9; D 10 15. 单选:11010111B转换为十进制数为()。 A 127; B 215; C 512; D 217 16. 单选:1011.11B转换为十进制数为()。 A 113; B 0B.3; C 47; D 11.75 17. 单选:操作系统将裸机改造成一台(),使用户无需了解软硬件细节就能使用计算机,提高工作效率。 A 虚拟机; B 家用机; C 商用机; D 超级计算机 18. 单选:windows操作系统属于()操作系统。 A 命令行; B 单任务; C 图形用户界面; D 单机 19. 单选:unix操作系统属于()操作系统。 A 单用户单任务; B 多用户多任务; C 单用户多任务; D 多用户单任务

相关主题
文本预览
相关文档 最新文档