当前位置:文档之家› 汇编第三次试验-武汉理工

汇编第三次试验-武汉理工

汇编第三次试验-武汉理工
汇编第三次试验-武汉理工

汇编语言实验报告

学院计算机科学与技术学院专业计算机科学与技术专业班级

学号姓名实验时间:2011年11月

一、实验名称:子程序设计

二、实验内容及要求:

理解CALL和RET指令,以及子程序的调用与返回过程;掌握子程序的结构,及相关的设计方法;能合理地分解程序功能,有效地支持功能的重用。

三、实验使用的关键技术和方法:

关键技术方法

DOS系统功能的调用MOV AH,01 AL=输入字符INT 21H

MOV AH,02 DL=输出字符INT 21H

MOV AH,09 DS:DX=串地址INT 21H

子程序的调用与返回Call DST ret

保存与恢复寄存器Push ax pop ax

子程序的参数传送通过寄存器传送,通过存储器传送

1: 习题5.22:从键盘输入一系列字符(以回车符结束),并按字母、数字及其他字符分类计数,最后显示这三类字符的计数结果(使用子程序BINIDEC)。

子程序BINIDEC:将BX中的无符号数用十进制数的形式输出。

2::编写一个子程序嵌套结构的程序模块,分别从键盘输入姓名及8个字符的电话号码,并以一定的格式显示出来。

主程序TELIST:

?显示提示符“INPUT NAME:”;

?调用子程序INPUT_NAME输入姓名;

?显示提示符“INPUT A TELEPHONE NUMBER:”;

?调用子程序INPHONE输入电话号码;

?调用子程序PRINTLINE显示姓名及电话号码。

子程序INPUT_NAME:

?调用键盘输入子程序GETCHAR,把输入的姓名存放在INBUF缓冲区中;

?把INBUF中的姓名移入输出行OUTNAME。

子程序INPHONE:

?调用键盘输入子程序GETCHAR,把输入的8位电话号码存放在INBUF缓冲区中;

?把INBUF中的号码移入输出行OUTPHONE。

子程序PRINTLINE:

显示姓名及电话号码,格式为:

NAME TEL.

X X X XXXXXXXX

3. 解释执行一个算术运算表达式(至少可以执行加法和减法运算,自定义表达式中数据的精度)

四、实验设计方案说明:

习题5.22代码

DATAS SEGMENT

ALPHA DB 'The total of alpha is:','$'

NUMBER DB 'The total of number is:','$'

OTHER DB 'The total of other is:','$'

BUF DB 7 DUP(0),'$'

CRLF DB 0DH,0AH,'$'

DATAS ENDS

CODES SEGMENT

MAIN PROC FAR

ASSUME CS:CODES,DS:DATAS

START:

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DATAS

MOV DS,AX

MOV BX,0

MOV SI,0

MOV DI,0 INPUT:

MOV AH,01H

INT 21H

CMP AL,0DH

JE DISP

CMP AL,30H

JAE L1 OTHERS:

INC DI

JMP SHORT INPUT L1:

CMP AL,39H

JA L2

INC SI

JMP SHORT INPUT

L2:

CMP AL,41H

JAE L3

JMP SHORT OTHERS L3:

CMP AL,5AH

JA L4

INC BX

JMP SHORT INPUT

L4:

CMP AL,61H

JAE L5

JMP SHORT OTHERS L5:

CMP AL,7AH

JA SHORT OTHERS

INC BX

JMP SHORT INPUT DISP:

LEA DX,CRLF

MOV AH,09H

INT 21H

LEA DX,ALPHA

CALL DISPLAY

LEA DX,NUMBER

MOV BX,SI

CALL DISPLAY

LEA DX,OTHER

MOV BX,DI

CALL DISPLAY

RET

MAIN ENDP

DISPLAY PROC NEAR MOV AH,09H

INT 21H

CALL BINIDEC

LEA DX,CRLF

MOV AH,09H

INT 21H

RET

DISPLAY ENDP

BINIDEC PROC NEAR PUSH AX

PUSH SI

PUSH DX

MOV AX,BX

MOV CX,10

LEA SI,BUF+6 EXCHANGE:

MOV DX,0

DIV CX

ADD DL,30H

MOV [SI],DL

DEC SI

OR AX,AX

JNZ EXCHANGE

LEA DX,BUF

MOV AH,09H

INT 21H

POP DX

POP SI

POP AX

RET

BINIDEC ENDP

CODES ENDS

END MAIN

习题6.9代码

DATAS SEGMENT

INPUTNAME DB 'Please input name:','$'

INPUTTELE DB 'Please input a telephone number:','$' OUTNAME DB 16 DUP(' '),'$'

OUTPHONE DB 12 DUP(' '),0DH,0AH,'$'

MESG DB 'NAME',12 DUP(' '),'TEL',0DH,0AH,'$'

CRLF DB 0DH,0AH,'$'

INBUF DB 12 DUP(' '),'$'

DATAS ENDS

STACKS SEGMENT

DW 100 DUP(?),'$'

TOS LABEL WORD

STACKS ENDS

CODES SEGMENT

MAIN PROC FAR

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

START:

MOV AX,STACKS

MOV SS,AX

MOV SP,OFFSET TOS

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DATAS

MOV DS,AX

MOV ES,AX

BEGIN:

LEA DX,INPUTNAME

MOV AH,09H

INT 21H

CALL INPUT_NAME

LEA DX,INPUTTELE

MOV AH,09H

INT 21H

CALL INPHONE

CALL PRINTLINE

RET

MAIN ENDP

INPUT_NAME PROC NEAR CALL GETCHAR

LEA SI,INBUF

LEA DI,OUTNAME

MOV CX,12

CLD

REP MOVSB

RET

INPUT_NAME ENDP

INPHONE PROC NEAR

CALL GETCHAR

LEA SI,INBUF

LEA DI,OUTPHONE

MOV CX,12

CLD

REP MOVSB

RET

INPHONE ENDP

GETCHAR PROC NEAR

MOV AL,20H

MOV CX,12

LEA DI,INBUF

CLD

REP STOSB

MOV CX,12

MOV DI,0 INPUT:

MOV AH,1

INT 21H

CMP AL,0DH

JZ QUIT

MOV INBUF[DI],AL

INC DI

LOOP INPUT QUIT:

CALL DISP_CRLF

RET

GETCHAR ENDP PRINTLINE PROC NEAR LEA DX,MESG

MOV AH,09H

INT 21H

LEA DX,OUTNAME

MOV AH,09H

INT 21H

LEA DX,OUTPHONE

MOV AH,09H

INT 21H

RET

PRINTLINE ENDP DISP_CRLF PROC NEAR LEA DX,CRLF

MOV AH,09H

INT 21H

RET

DISP_CRLF ENDP CODES ENDS

END MAIN

五、测试及评估习题5.22图

习题6.9图

第三题代码

DATAS SEGMENT

EXPRESSION DB 20 DUP(' '),'$'

DATAS ENDS

CODES SEGMENT

MAIN PROC FAR

ASSUME CS:CODES,DS:DATAS

START:

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DATAS

MOV DS,A X

LEA SI,EXPRESSION

L1:

MOV AH,01H

INT 21H

MOV [SI],A L

INC SI

CMP A L,0DH

JNE L1

MOV [SI],'$'

MOV A H,02H

MOV DL,0DH

INT 21H

MOV DL,0AH

INT 21H

CA LL CAL

RET

六、设计心得

通过本次试验,我对子程序结构的设计方法有了一定的认识,子程序相当于高级语言中的过程和函数。在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序的形式,以便需要时可以调用它。

武汉理工大学微机原理接口实验报告

学生学号22实验课成绩 学生实验报告书 实验课程名称微机原理与接口技术 开课学院计算机科学与技术学院 指导教师姓名何业兰 学生姓名高胜洋 学生专业班级计算机1404 2016-- 2017学年第二学期

实验课程名称:微机原理及接口技术 第一部分:实验准备 一、实验目的和意义 1.熟悉接口试验箱的使用环境。 2.体会接口电路通过外部总线与处理器连接原理。 3.掌握可编程芯片8253的编程方法。 二、实验内容和环境 实验内容: 1、编写程序,将 8254 的计数器 0 和计数器 1 都设为方式 3,用信号源 1MHz 作为 CLK0时钟,OUT0 为波形输出 1ms 方波,再通过 CLK1 输入,OUT1 输出 1s 方波。 2、编写程序,将 8254 的计数器 0 设为方式 3,计数值为十进制数 4,用单次脉冲 KK1+作为 CLK0 时钟,OUT0 连接 MIR7,每当 KK1+按动 5 次后产生中断请求,在Wmd86程序运行结果栏上显示字符M 。改变计数值,验证 8254 的计数功能。 实验设备: PC 机一台,TD-PITE 实验装置一套。 三、实验基本原理与方法 (1)8254的功能 ?8253具有三个独立的16位计数器(0#~2#通道); ?每个通道有6种工作方式; ?可以进行二进制或十进制计数,计数方式为减1计数。 (最高计数频率2.6MHZ) (2)8254 的内部结构和外部引脚 图1.1 8254内部结构图1.2 8254外部引脚 (3)8254 的工作方式 ●方式0:计数到0 结束输出正跃变信号方式。 ●方式1:硬件可重触发单稳方式。 ●方式2:频率发生器方式。

武汉理工大学电工学实验报告

[电子电工实习报告] 车辆1104班 吴昊宇 2019年7月11日

目录 1.0实验目的 (3) 1.1实验原理 (4) 1.1.1原理图及原理说明 (4) 1.1.2电路装配图 (7) 1.1.3连线图 (7) 1.2实验内容 (8) 1.2.1实训过程 (8) 1.2.2元件清单 (8) 1.2.3作品展示 (22) 1.2.4实验数据分析 (23) 1.3总结 (23)

1.0实验目的 随着现代化技术的发展,电工电子技术在现代化生活中应用越来越广泛,小到家用电器,大到军事设备,在这些形形色色的种类繁多的设备中都用到了电工电子技术。很多的自动化半自动化控制的未处理系统都是以电子元件为基本单元,通过集成电路来实现的,这就要求工科学生掌握基本的电路设计、制作、检查和维修知识。 本实验的目的如下: ●强化安全用电意识,掌握基本安全用电操作方式。 ●基本掌握公共电烙铁的焊接技术,能够独立的完成简单电子产品的安装和焊接、拆卸过程,能掌握基本的电路维修维修方法。 ●基本掌握电路原理图、装配图的绘制,能独立的完成简单电子电路的设计。 ●了解常用电子器件的类别型号、规格、性能及其使用范围。 ●能够正确识别常用电子元件,并通过查阅相关手册了解其相关参数。 ●熟练的掌握万用表等仪表,并能够独立的检测电路的各种参数,且能检测出简单的电路问题。

1.1实验原理 1.1.1原理图及原理说明 图18 彩灯音乐盒电原理图 本电路以555芯片、二极管、三极管、电解电容与瓷介电容、音乐芯片、喇叭为其核心元件,LED交替发光产生明暗变化,伴随着喇叭发出事先录制的音乐。 工作原理综述:电源开关K1闭合,发光二极管LED3亮,开始由于电容C1短路,所以555芯片的2和6脚为低电平0,又4脚恒为高电位1,由555芯片的输出特性知输出端3为高电平1,LED1亮,三极管VT2截止,LED2灭,7 C1通过电阻R1,R3充电,2和6脚电位升高,最终达到高电平1、3脚输出低电平0,LED1灭,三极管VT2导通,LED2亮,7为低阻态,通过电源负开始放电致使2和6脚电位降低至0,3脚又输出高电位1,LED1亮LED2灭,循环往复。而LED3绿灯和喇叭都一直接

北京理工大学汇编实验报告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为首址的数据区中,其最后一字符‘$’作为结束标志,计算该字符串的长度并输出。提示:从串的第一个字符开始统计,直到遇到定义的字符串结束符为止,看看在这个过程中总共有多少个字符,

武汉理工大学-操作系统实验报告

学 生 实 验 报 告 书 实验课程名称 操 作 系 统 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 软件工程 2014 — 2015 学年 第 一 学期 学生学号 实验课成绩

实验课程名称:操作系统 实验项目名称Linux键盘命令和vi实验成绩 实验者专业班级组别 同组者实验日期年月日第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 掌握Linux系统键盘命令的使用方法。 二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等) Vi编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi。 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: 例如:$ vi myfile 有一点要注意,在进入vi之后,是处于“命令行模式”,要切换到“插入模式”才能够输入文字。 2. 切换至插入模式编辑文件 在“命令行模式”下按一下字母“i”就可以进入“插入模式”,这时候就可以开始输入文字了。 3. Insert 的切换 处于“插入模式”,就只能一直输入文字,按一下“ESC”键转到”命令行模式”能够删除文字。 4. 退出vi及保存文件 在“命令行模式”下,按一下“:”冒号键进入“Last line mode”,例如: : w myfilename : wq (输入”wq”,存盘并退出vi) : q! (输入q!,不存盘强制退出vi) 三、主要实验工具、仪器设备及耗材 安装Linux系统的计算机一台。

第二部分:实验结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 在整个过程中,最困难的就是记忆整个Vi命令。在查阅资料的情况下,这个问题得到了解决。 二、实验结果描述 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面 图1 vi主界面 2.切换至插入模式编辑文件 在“命令行模式”下按一下字母”i”就可以进入”插入模式”。 3.退出vi及保存文件 在”命令行模式”下,按一下”:”冒号键进入”Last line mode”;输入w filename 将文章以指定的文件名filename保存;输入wq存盘并退出vi。 三、实验小结、建议及体会 这次实验让对Linux操作系统有了初步的了解,我掌握了一些Linux系统常用的命令。

(完整版)武汉理工大学《电路分析(上)》课后简答题

1-1 实际电路器件与理想电路元件之间的联系和差别是什么? 答: (1)联系:理想电路元件是对实际电路器件进行理想化处理、忽略次要性质、只表征其主要电磁性质的所得出的模型。 (2)差别:理想电路元件是一种模型,不是一个实际存在的东西;一种理想电路元件可作为多种实际电路器件的模型,如电炉、白炽灯的模型都是“电阻”。 1-2 (1)电流和电压的实际方向是怎样规定的?(2)有了实际方向这个概念,为什么还要引入电流和电压的参考方向的概念?(3)参考方向的意思是什么?(4)对于任何一个具体电路,是否可以任意指定电流和电压的参考方向? 答: (1)电流的实际方向就是正电荷移动的方向;电压的实际方向(极性)就是电位降低的方向。 (2)对于一个复杂电路,电流、电压的实际方向事先难以确定,而交流电路中电流、电压的实际方向随时间变化,这两种情况下都无法准确标识电流、电压的实际方向,因此需要引入参考方向的概念。 (3)电流(或电压)参考方向是人为任意假定的。按电流(或电压)参考方向列有关方程,可解出电流(或电压)结果。若电流(或电压)结果数值为正,则说明电流(或电压)的实际方向与参考方向相同;若电流(或电压)结果数值为负,则说明电流(或电压)的实际方向与参考方向相反。 (4)可以任意指定电流和电压的参考方向。 1-3 (1)功率的定义是什么?(2)元件在什么情况下是吸收功率的?在什么情况下是发出功率的?(3)元件实际是吸收功率还是发出功率与电流和电压的参考方向有何关系? 答: (1)功率定义为单位时间内消耗(或产生)的能量,即 ()dW p t dt = 由此可推得,某二端电路的功率为该二端电路电压、电流的乘积,即 ()()()p t u t i t = (2)某二端电路的实际是吸收功率还是发出功率,需根据电压、电流的参考方向以及由()()()p t u t i t =所得结果的正负来综合判断,见下表 (3)元件实际是吸收功率还是发出功率与电流和电压的参考方向无关。

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告) 内容: 实验一、六、七、八 院系专业:计算机学院计算机科学与技术 姓名: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++)

武汉理工操作系统实验报告(DOC)

学生学号0121110680125 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称操作系统 开课学院计算机科学与技术学院 指导老师姓名刘军 学生姓名李帅 学生专业班级软件1101 2013 — 2014 学年第一学期

实验课程名称:操作系统 实验项目名称Linux键盘命令和vi实验成绩 实验者李帅专业班级软件工1101 组别 同组者实验日期 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) Linux键盘命令和vi 1.要求:掌握Linux系统键盘命令的使用方法 1. 使用mkdir命令建立一个子目录subdir 2. 使用cat或more命令查看file1文件的内容。 3. 将date命令的用法附加到文件file1的后面: 4. 利用ls -l file1命令列出文件file1的较详细的信息。 5. 利用rm fa命令将文件fa删除。再利用ls -l命令查看工作目录内容。 6. 运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中 2.vi操作 1.了解vi编辑器的作用和功能 2.熟悉vi的操作环境和切换方法 3.掌握vi操作的方式(几个常用键) 4.了解常用的快捷键 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) VI编辑器的常见命令: vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 键盘命令: 1. cat,more,less命令 2. Is命令 3. cp命令 4. rm命令 5. mv命令 VI命令: 1.vi进入vi缓冲区 2.vi file1:进入文件file1 3.退出vi

汇编实验报告

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

汇编实验报告..

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

实验一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/2917070647.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 – 注意:

武汉理工大学计算机网络实验报告

学生学号0121210680117 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称《计算机网络》 开课学院计算机科学与技术学院 指导老师姓名周兰采 学生姓名柏扬 学生专业班级软件1201 2013 —2014 学年第二学期

实验课程名称:计算机网络 实验项目名称获取网卡的MAC地址实验成绩 实验者专业班级组别 同组者实验日期 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验内容:编程获取以太网适配器的MAC地址。 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) 实验原理: 在系统的cmd命令提示符中,我们输入ipconfig/all就可以看到本机上所有的适配器的具体内容如媒体状态、连接特定的DNS后缀、描述、物理地址、DHCP 已启用、自动配置已启用信息。本实验是运用匹配的思想,先通过,在寻找匹配字符串物理地址,找到了就将:后面位置的内容赋值给mac,作为MAC地址,然后再主函数中输出即可。

实验代码如下: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SystemTool { /** *@return mac地址 */ public static String getWindowsMACAddress() { String mac = null; BufferedReader bufferedReader = null; Process process = null; try { process = Runtime.getRuntime().exec("ipconfig /all");// windows 下的命令,显示信息中包含有mac地址信息 bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null;

汇编语言实验报告

汇编语言实验报告 专业: 班级: 姓名: 学号: 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个字节内容

武汉理工大学 统计学 学生实验报告书

实验报告

3,在对话框中选择描述统计、选择确定 4,在对话框的输入区域输入试验项目的数据范围A2:A31,在输出区域输入 D3,选择汇总统计,选择确定。 (三)动态数列长期趋势预测 1,进入Excel系统,输入实验项目的有关数据 2、建立直线趋势方程:Yc=a+bt,利用最小平方法计算a和b的参数 3、将参数代入直线趋势方程,Yc=a+bt,预测所需年份的产量 (四)抽样调查区间估计(从一批灯泡中随即抽取40只进行检查,并对该批全部 灯泡的平均使用时间的可能范围) 1、进去Excel系统,输入实验项目的全部数据,输入计算指标、计算公式 2、利用各公式计算相应的指标 3、利用区间估计的方法计算区间估计 五、原始数据记录 (一)制作次数分布图表(直方图) 某班40名学生考试成绩如下(单位:分) 成绩:66 45 99 56 88 99 84 81 76 94 79 77 99 82 65 73 74 77 98 65 60 79 67 66 82 97 59 83 60 78 72 63 89 95 84 79 86 78 98 87 答:首先,打开Excel并新建一个工作簿,输入试验项目的所有数据;然后,点击工具菜单栏的【数据】,并选择【数据分析】;再在对话框中选择【直方图】并点击确定;然后,在对话框的【输入区域】输入试验项目的数据范围(A2:A41),在【接收区域】输入分组的范围(B2:B6),在【输出区域】输入D2,并勾选【累计百分比】和【输出图表】,点击确定。最后得到次数分布图表如下图所示: 图1 在Excel中制作次数分配图表 由上述图表可知,该班学生考试成绩在50分及以下的有1人,50分(不包含50分)到60分(包含60分)之间的有4人,60分(不包含60分)到70分(包含70分)之间的有6人,70分(不包含70分)到80分(包含80分)之间的有11人,80分(不包含80分)到90(包含90分)分之间的有10人,90分以上的有8人。 (二)计算描述统计量(某煤矿6月份的燃煤产量,单位:万吨) 30个产量的原始数据如下: 产量:2010 2200 2400 1965 2010 2025 2042 2050 2080 2101 2103 2130 2152 2193 1100 2230 2280 2282 2300 2338 2342 2345 2361 2382 2390 2424 2450 1560 1980 1900

汇编实验报告

汇编语言程序设计 实验报告 学号: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调试可执行文件,观察执行结果,以验证其正确性。

武汉理工大学算法分析实验报告

学生实验报告书 实验课程名称算法设计与分析开课学院计算机科学与技术学院 指导教师姓名李晓红 学生姓名 学生专业班级软件工程zy1302班2015-- 2016学年第一学期

实验课程名称:算法设计与分析 同组者实验日期2015年10月20日第一部分:实验分析与设计 一.实验内容描述(问题域描述) 1、利用分治法,写一个快速排序的递归算法,并利用任何一种语言,在计算机上实现,同时 进行时间复杂性分析; 2、要求用递归的方法实现。 二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 本次的解法使用的是“三向切分的快速排序”,它是快速排序的一种优化版本。不仅利用了分治法和递归实现,而且对于存在大量重复元素的数组,它的效率比快速排序基本版高得多。 它从左到右遍历数组一次,维护一个指针lt使得a[lo..lt-1]中的元素都小于v,一个指针gt 使得a[gt+1..hi]中的元素都大于v,一个指针i使得a[lt..i-1]中的元素都等于v,a[i..gt]中的元素都还未确定,如下图所示: public class Quick3way { public static void sort(Comparable[] a, int lo, int hi) { if (lo >= hi) return; int lt = lo, i = lo + 1, gt = hi; Comparable pivot = a[lo];

第二部分:实验调试与结果分析 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1、调试方法描述: 对程序入口进行断点,随着程序的运行,一步一步的调试,得到运行轨迹; 2、实验数据: "R", "B", "W", "W", "R", "W", "B", "R", "R", "W", "B", "R"; 3、实验现象: 4、实验过程中发现的问题: (1)边界问题: 在设计快速排序的代码时要非常小心,因为其中包含非常关键的边界问题,例如: 什么时候跳出while循环,递归什么时候结束,是对指针的左半部分还是右半部分 排序等等; (2)程序的调试跳转: 在调试过程中要时刻记住程序是对那一部分进行排序,当完成了这部分的排序后, 会跳到哪里又去对另外的那一部分进行排序,这些都是要了然于心的,这样才能准 确的定位程序。 二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1、实验结果:

高频电子线路简答题—武汉理工大学

1. 试画出超外差式接收机方框图,并简要说明各部分的功能。 答: 从天线收到的微弱高频信号经高频小信号放大器放大,然后送至混频器与本地振荡器所产生的等幅振荡电压相混合,得到中频电压。中频电压经中频放大器放大后送入检波器,解调出低频信号。最后再经低频放大器放大后送扬声器,转变为声音信号。 2. 高频功率放大器欠压、临界、过压状态是如何区分的?当Vcc (集电极电源电压),Vbb (基极电源电压),Vbm (输入电压振幅)和负载电阻R L 只变化其中一个时,放大器的工作状态将如何变化? 答:当高频谐振功率放大器的集电极电流都在临界线的右方时,称为欠压工作状态; 当集电极电流的最大值正好落在临界线上时,称为临界工作状态; 当集电极电流的最大值穿过了临界线到达左方饱和区时,称为过压工作状态; 随着谐振电阻R L 的增大,高频谐振功率放大器的工作状态由欠压到临界再到过压。 随着V cc 的增大,高频谐振功率放大器的工作状态由过压到临界再到欠压。 随着V bb 增大,高频谐振功率放大器的工作状态由欠压到临界再到过压。 随着V bm 增大,高频谐振功率放大器的工作状态由欠压到临界再到过压。 3. 为什么基极调幅电路必须工作于欠压状态? 答:基极调幅是利用调制信号电压来改变高频功率放大器的基极偏压,以实现调幅的(3分)。在欠压状态下,集电极电流的基波分量随基极电压成正比变化。因此,集电极回路的输出高频电压的振幅将随调制信号的波形而变化,得到调幅波。地振荡器所产生的等幅振荡电压相混合,得到中频电压。中频电压经中频放大器放大后送入检波器,解调出低频信号。最后再经低频放大器放大后送扬声器,转变为声音信号。 4. 无线电通信为什么要进行调制?常用的模拟调制方式有哪些? 答: 1) 信号不调制进行发射天线太长,无法架设。2) 信号不调制进行传播会相互干扰,无法接收。常用的模拟调制方式有调幅、调频及调相 5. 谐振功率放大器效率高的原因是什么?其输出波形不失真的原因是什么? 答:谐振功放效率高是因为它的工作频率很高 ,高频谐振功放实质是将直流功率转变为高频功率,为了输出功率足够大,常选在丙类状态下工作,而丙类状态的转换率大于甲,乙类,所以其效率高。输出不失真是因为它采用选频网络作为负载,使用谐振负载进行选频输出,故输出仍为正弦波,波形不会失真。 6. 小信号谐振放大器与谐振功率放大器的主要区别是什么? 答:1)小信号谐振放大器的作用是选频和放大,它必须工作在甲类工作状态;而谐振功率放大器为了提高效率,一般工作在丙类状态。 2)两种放大器的分析方法不同:前者输入信号小采用线性高频等效电路分析法,而后者输入信号大采用折线分析法。 7. 解释为什么理想丁类高频功率放大效率可达00100? 答:丁类谐振功率放大器中,由于功率管工作在开关状态,理想状态下,集电极损耗为0,故理想

汇编语言程序设计实验报告

实验报告实验名称汇编语言程序设计 | | 专业班级:信息安全 学号: 姓名:

实验一汇编语言上机过程和Debug常用调试命令 一.实验目的: 学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。 二.实验题目: 熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在调试过程中,学习及掌握debug程序的各种操作命令。 三.问题描述: 试编写一程序:比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘match’; 否则,显示‘no match’。 四.方法说明: a)使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。 b)用汇编程序masm(或asm)对源文件汇编产生目标文件obj 如:汇编指示出错则需重新调用编辑程序修改错误,直至汇编通过为止。 c)用连接程序link 产生执行文件EXE. d)执行程序,可直接从DOS执行程序。 e)使用debug程序调试程序的方法。 五.实验步骤: 1.调用字处理程序EDIT 建立以sample.asm文件 datarea segment string1 db‘move the cursor backward.’ string2 db‘move the cursor backward.’ mess1 db ‘Match..’,13,10,’$’ mess2 db ‘No match!..’,13,10,’$’ datarea ends prognam segment main proc far assume cs:prognam,ds:datarea,es:datarea start: push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov es,ax lea si,string1 lea di,string2 cld mov cx,25

(完整版)高频电子线路简答题—武汉理工大学

1.试画出超外差式接收机方框图,并简要说明各部分的功能。 答: 从天线收到的微弱高频信号经高频小信号放大器放大,然后送至混频器与本地振荡器所产生的等幅振荡电压相混合,得到中频电压。中频电压经中频放大器放大后送入检波器,解调出低频信号。最后再经低频放大器放大后送扬声器,转变为声音信号。 2.高频功率放大器欠压、临界、过压状态是如何区分的?当Vcc(集电极电源电压),Vbb(基极电源电压),Vbm(输入电压振幅)和负载电阻R L只变化其中一个时,放大器的工作状态将如何变化? 答:当高频谐振功率放大器的集电极电流都在临界线的右方时,称为欠压工作状态; 当集电极电流的最大值正好落在临界线上时,称为临界工作状态; 当集电极电流的最大值穿过了临界线到达左方饱和区时,称为过压工作状态; 随着谐振电阻R L的增大,高频谐振功率放大器的工作状态由欠压到临界再到过压。 随着V cc的增大,高频谐振功率放大器的工作状态由过压到临界再到欠压。 随着V bb增大,高频谐振功率放大器的工作状态由欠压到临界再到过压。 随着V bm增大,高频谐振功率放大器的工作状态由欠压到临界再到过压。 3.为什么基极调幅电路必须工作于欠压状态? 答:基极调幅是利用调制信号电压来改变高频功率放大器的基极偏压,以实现调幅的(3分)。在欠压状态下,集电极电流的基波分量随基极电压成正比变化。因此,集电极回路的输出高频电压的振

幅将随调制信号的波形而变化,得到调幅波。地振荡器所产生的等幅振荡电压相 混合,得到中频电压。中频电压经中频放大器放大后送入检波器,解调出低频信 号。最后再经低频放大器放大后送扬声器,转变为声音信号。 4. 无线电通信为什么要进行调制?常用的模拟调制方式有哪些? 答: 1) 信号不调制进行发射天线太长,无法架设。2) 信号不调制进行传播会相互干扰,无法接收。常用的模拟调制方式有调幅、调频及调相 5. 谐振功率放大器效率高的原因是什么?其输出波形不失真的原因是什么? 答:谐振功放效率高是因为它的工作频率很高 ,高频谐振功放实质是将直流功率转变为高频功率,为了输出功率足够大,常选在丙类状态下工作,而丙类状态的转换率大于甲,乙类,所以其效率高。输出不失真是因为它采用选频网络作为负载,使用谐振负载进行选频输出,故输出仍为正弦波,波形不会失真。 6. 小信号谐振放大器与谐振功率放大器的主要区别是什么? 答:1)小信号谐振放大器的作用是选频和放大,它必须工作在甲类工作状态;而谐振功率放大器为了提高效率,一般工作在丙类状态。 2)两种放大器的分析方法不同:前者输入信号小采用线性高频等效电路分析法,而后者输入信号大采用折线分析法。 7. 解释为什么理想丁类高频功率放大效率可达00100? 答:丁类谐振功率放大器中,由于功率管工作在开关状态,理想状态下,集电极损耗为0,故理想丁类高频功率放大效率可达00100。 8. 石英晶体振荡器有几种基本类型?石英晶体在这几种电路中分别起什么作用?试画出石英谐振器的基频等效电路。 答:石英晶体振荡器有两种类型:并联谐振型晶体振荡器和串联谐振型晶体振荡器。 并联型:晶体的作用是把晶体置于反馈网络的振荡回路之中,作为感性元件与回路其他元件一起按

第一次实验报告

长春理工大学 汇编语言 预习报告 实验题目:DEBUG调试程序的使用 实验时间:2016年4 月 6 日实验地点:东三教912 班级:1405111 学号:140511114 姓名:王国伟

一.实验目的 a)学习使用DEBUG程序的各种命令。 b)利用DEBUG学习了解计算机取指令、执行指令的工作过程。 c)掌握用DEBUG调试自编程序的方法。 二.实验准备 了解什么是DEBUG 1. Debug 是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具。使用它,可以调试CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序运行。 实验中主要用到的DEBUG功能 1.R命令查看、改变CPU中寄存器的内容; 2.D命令查看内存的内容; 3.E命令改写内存的内容; 4.U命令将内存中的机器指令翻译成汇编指令; 5.T命令执行一条机器指令; 6.用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令 学习进入DEBUG的方式 1.使用win+R打开运行框 2.输入cmd指令进入DOS操作界面 3.在界面中输入debug来进入DEBUG编辑界面

使用DEBUG的几点说明 1.提示符“-”下才能输入命令,在按“回车”后该命令才开始执行 2.命令的大小写不区分 3.出现语法错误时,界面会给出”^ERROR” 4.用ctrl+c或ctrl+break来终止当前命令的执行,还可以用ctrl+s来暂停屏幕显 示(当连续不断地显示信息时) 5.BUG使用十六进制来计数 常用指令 1.R命令(Register) 格式1:R 功能1:显示所有寄存器中的内容 格式2:R寄存器名称 功能2:显示特定寄存器中的内容,并且可以做修改 2.D命令 功能:显示内存单元内容 格式1: D起始位置 功能1: DEBUG从起始位置显示128个字节的内容。输入命令D 0C0B:100格式2: D 起始位置结束位置 功能2: DEBUG 从起始位置一直显示到结束位置。输入命令D DS:100 11F 格式3: D 起始位置L 长度

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