当前位置:文档之家› 重庆大学汇编实验报告3

重庆大学汇编实验报告3

重庆大学汇编实验报告3
重庆大学汇编实验报告3

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

年级、专业、班级姓名

实验题目实验3:汇编程序的循环结构的使用

实验时间2013年4月15 实验地点DS1421

实验成绩实验性质□验证性 设计性□综合性教师评价:

□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范;

其他:

评价教师签名:

一、实验目的

通过一个排序算法,来熟悉和掌握利用汇编语言实现循环处理能力的程序。

二、实验项目内容

1 编写一个整数数组内的元素排序的程序

2 需要排序数组大小为10个DW的整数

3 按照从低到高输出这10个数字

4 要求撰写必要程序模块设计图和主要的流程

三、实验过程或算法(源程序)

assume cs:code,ds:data

data segment

dw 1234h,2a45h,345bh,45c7h,5678h,4321h,5432h,6543h,7654h,0d765h table db '0123456789abcde'

data ends

stack segment

db 32 dup(0)

stack ends

code segment

start: mov ax,data

mov ds,ax

mov di,0

mov ax,stack

mov ss,ax

mov sp,32

mov cx,9

s0: mov ax,ds:[si]

push cx

s1: add si,2

cmp ax,ds:[si]

jb change

s2: loop s1

xchg ax,ds:[si]

xchg ax,ds:[di]

mov si,0

mov di,0

pop cx

loop s0

mov ax,data

mov ds,ax

mov si,0

call show

mov ax,4c00h

int 21h

change: mov ax,ds:[si]

mov di,si

jmp s2

show: push es

push di

push ax

push bx

push cx

push dx

mov ax,0b800h

mov es,ax

mov di,160*12+2*10

mov cx,10

show1: push cx

show2: mov al,ds:[si]

mov dl,al

and al,00001111b

mov bl,al

mov bh,0

mov al,table[bx]

mov ah,2

push ax

shr dl,1

shr dl,1

shr dl,1

shr dl,1

mov bl,dl

mov bh,0

mov dl,table[bx]

mov dh,2

push dx

inc si

loop show2

mov cx,4

show3: pop word ptr es:[di]

add di,2

loop show3

mov al,'h'

mov ah,2

mov es:[di],ax

add di,2

mov al,' '

mov es:[di],ax

add di,2

pop cx

loop show1

pop dx

pop cx

pop bx

pop ax

pop di

pop es

ret

code ends

end start

Data segment存放要进行排序的数据和下面程序中要用到的数据。stack segment主要用于嵌套循环是保存cx的值和下面输出数据时的类型转换。

开始,使ds:si指向第一个数据,ss:sp指向栈底,di用于下面程序中保存最大值的位置。

采用冒泡排序算法,流程图为:

其中的change代码段在后面

Ax,ds,si为送入函数show的参数,其中ds:si指向要显示的数据(16进

制).show函数的功能为把十六进制的数据显示到屏幕上。上面排序要用到的代码。

Show函数首先保存要中到的寄存器。然后使es:di设置光标,指示数据在屏幕上的第一个位置。

因为数值0-15与字符‘0’-’f’之间没有一致的映射关系存在,所以我用table 表在他们之间建立一致的映射关系:以数值为table表的偏移,可以找到对应的字符。10个数据,可以用10次循环依次输出。每个数据2个字节,所以每次处理2位一个字节。由于数据在内存中一个字节表示两位对应屏幕上的数,所以用and al,00001111,与shr bl,cl(cl=4)分离数据。又由于输出位置的先后关系,所以用栈转换顺序,最后在数据后面加上‘h’表示十六进制。

程序结束。

四、实验结果及分析和(或)源程序调试过程

运行上面的程序:

可以看出数据是从小到大依次排列的。

通过本实验,我熟悉和掌握利用汇编语言实现循环处理能力的程序,loop指令的格式是:loop 标号,CPU执行loop指令的时候,要进行两步操作,(1)(cx)=(cz)-1 (2)判断cx的中的值,不为0则转到标号处执行程序,如果为0则向下执行。所以我们用cx存放循环次数。对于嵌套循环,我们可以用栈来保存外循环的cx,当内循环结束时,再出栈,恢复cx的值。

报告创建时间:2013-5-1

汇编实验报告(详细版)

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

汇编实验报告

南华大学 实验名称:汇编语言程序设计实验 学院:计算机学院 专业班级:本2010 电气信息类03班 学号:20104030342 姓名:谢志兴 指导教师:刘芳菊 日期:2012 年 6 月10 日

实验一DEBUG的熟悉 一、实验目的 (1)学习使用DEBUG的命令; (2)使用DEBUG命令在数据段中查看程序运行的结果; (3)利用DEBUG运行简单的程序段。 二、实验内容 1)输入程序观察寄存器变化 使用DEBUG命令,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。注意用T命令执行时,CS: IP寄存器的内容。 MOV AX, 4E20 ADD AX, 1416 MOV BX, 2000 ADD AX, BX MOV BX, AX ADD AX, BX MOV AX, 001A MOV BX, 0026 ADD AL, BL ADD AH, BL ADD BH, AL MOV AH, 0 ADD AL, BL ADD AL, 9C 2)输入下面的程序,这是一个两个数相与的程序。结果存放在MSG2单元中,偏移地址为?值为多少? DSEG SEGMENT MSG1 DW 7856H, 2038H MSG2 DW? DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG

START: MOV AX, DSEG MOV DS, AX MOV AX, MSG1 AND AX, MSG1+2 MOV MSG2, AX MOV AL, 0 MOV AH, 4CH INT 21H CSEG ENDS END START 程序的跟踪执行操作 在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢? 程序执行过程的跟踪操作步骤如下: (1)在DOS下输入:DEBUG 文件名.EXE (2)在DEBUG提示符下输入U命令 如果程序中有数据段,可以看到反汇编后第一句可执行语句为: A地址:B地址MOV AX, K地址如:1261:0000 MOV AX, 1260 其中:K地址就是数据段的段寄存器内容,A地址为代码段段寄存器地址,B地址为程序第一条指令的偏移地址。 (3)可以用T命令单步执行指令,执行到MOV AH, 4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000) (4)用D命令查看程序执行后数据段的变化 输入:D K地址:0 (如:D1260:0)

汇编实验报告

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

汇编实验报告

实验一 DOS常用命令及8088/86指令使用 实验目的 通过实验掌握下列知识: 1、DOS命令: CD,DIR,DEL,RENAME,COPY。 2、8088指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG 3、DEBUG命令: A,D,E,F,H,R,T,U。 4、BCD码,ASCII码及用十六进制数表示二进制码的方法。 5、8088寄存器: AX,BX,CX,DX,F,IP。 实验类型:验证 内容及步骤 一、DOS常用命令练习 1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DIR, 查看此目录下所有文件。 2、键入命令CD..进入上级目录,再查看此目录下所有文件。 3、将一张3.5寸软盘插到 A驱动器中,用DIR命令查看盘上文件。 4、用命令 COPY https://www.doczj.com/doc/2f2229920.html, BUG 复制一个文件。 5、用命令 RENAME BUG BG 将BUG 文件改为BG。 6、用命令 DEL BG 将文件BG删除。 在操作时要注意提示信息,并按提示操作。 二、DEBUG 命令使用 1、键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '。 2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。 3、用命令 D100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。 4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。 5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码? 6、用H命令检查下列各组十六进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758H,347FH 7、用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。 8、用R命令将AX,BX内容改写为1050H及23A8H。 三、8088常用指令练习 1、传送指令 用A命令在内存100H处键入下列内容: -A 0100↙ ****:0100 MOV AX,1234↙ ****:0103 MOV BX,5678↙ ****:0106 XCHG AX,BX↙ ****:0108 MOV AH,35↙ ****:010A MOV AL,48↙

重庆大学汇编实验报告3

《汇编语言程序设计》实验报告 年级、专业、班级姓名 实验题目实验3:汇编程序的循环结构的使用 实验时间2013年4月15 实验地点DS1421 实验成绩实验性质□验证性 设计性□综合性教师评价: □算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范; 其他: 评价教师签名: 一、实验目的 通过一个排序算法,来熟悉和掌握利用汇编语言实现循环处理能力的程序。 二、实验项目内容 1 编写一个整数数组内的元素排序的程序 2 需要排序数组大小为10个DW的整数 3 按照从低到高输出这10个数字 4 要求撰写必要程序模块设计图和主要的流程 三、实验过程或算法(源程序) assume cs:code,ds:data data segment dw 1234h,2a45h,345bh,45c7h,5678h,4321h,5432h,6543h,7654h,0d765h table db '0123456789abcde' data ends stack segment db 32 dup(0) stack ends code segment start: mov ax,data mov ds,ax

mov di,0 mov ax,stack mov ss,ax mov sp,32 mov cx,9 s0: mov ax,ds:[si] push cx s1: add si,2 cmp ax,ds:[si] jb change s2: loop s1 xchg ax,ds:[si] xchg ax,ds:[di] mov si,0 mov di,0 pop cx loop s0 mov ax,data mov ds,ax mov si,0 call show mov ax,4c00h int 21h change: mov ax,ds:[si] mov di,si jmp s2 show: push es push di push ax push bx push cx push dx mov ax,0b800h mov es,ax mov di,160*12+2*10 mov cx,10 show1: push cx

汇编实验报告..

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

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

汇编实验报告

XI`AN TECHNOLOGICAL UNIVERSITY 实验报告

西安工业大学实验报告 一、实验目的 1、学习和掌握利用TD-TIPE连机软件调试汇编程序。 2、了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。 二、实验原理 基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。 三、实验步骤、数据记录及处理 1.步骤: (1)硬件测试; (2)获得端口地址; (3)写出源程序, 2.源代码 (1)程序一 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE

START: MOV DX, 0646H MOV AL, 90H OUT DX, AL AA1: MOV DX, 0640H IN AL, DX CALL DELAY MOV DX, 0642H OUT DX, AL JMP AA1 DELAY: PUSH CX MOV CX, 0F00H AA2: PUSH AX POP AX LOOP AA2 POP CX RET CODE ENDS END START (2)程序二 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX, 0646H MOV AL, 90H OUT DX, AL AA1: MOV DX, 0640H IN AL, DX

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

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H, 64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1, 2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H +

99223344H = xxxxxxxxH

四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

重庆大学计算机网络实验报告

《计算机网络》实验报告 一、实验目的 掌握3种UTP线缆的制作;了解3类UTP线缆的作用并能将其用于实际的网络组网;了解与布线有关的标准与标准组织 了解计算机网络组网的层次化原则;掌握局域网组网中从物理层到网络层所应完成的一般任务;掌握PING和IPCONFIG等命令的使用 学会简单组网;培养初步的协同工作能力 二、实验项目内容 5类UTP与6类UTP双绞线; 布线有关的标准组织及标准; 3种UTP线缆的作用和线图:直连线(Straight-thru),交叉线(Crossover)和反接线(Rollover); 制作直连线并进行网络互联的练习; 计算机网络组网的一般任务和层次化原则; 按要求进行网络拓扑连接和配置; PING和IPCONFIG实用网络工具

三、实验过程或算法(源程序) 按照网线的制作步骤制作网线: 准备工作:准备RJ45卡线钳一把,水晶头,网线; 制作步骤:共有四步,可以简单归纳为四个字:“剥”,“理”,“插”,“压” 1.剥线:剥线的长度为13mm~15mm,不宜太长或太短; 2.理线:按顺序整理平,遵守规则,否则不能正常通信; 3.插线:一定要平行插入到线顶端,以免触不到金属片; 4.检测:发射器和接收器两端的灯同时亮为正常。 (2)组网 在交换机上用做好的网线连接相邻的电脑,最后在cmd中用Ping命令检查是否连接成功。 四、实验结果及分析和(或)源程序调试过程 (1)结果及分析 有两种网线水晶头接线的方式:交叉线和直连线。我选择的是直连线式,按照双绞线颜色白橙,橙,白绿,蓝,白蓝,绿,白棕,棕的顺序插入并压制好,检验发现只有2,3,6,7连上了,然后跟同组的同学合力又做了两根,都能全部连上。把做好的网线连接到交换机上,成功验证了简单组网。 (2)个人小结

汇编实验报告一

汇编语言程序设计 实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验班级 学号 姓名 日期 成绩 评阅人 软件学院

一、实验目的与意义 1、掌握汇编语言程序设计的基本方法和技能; 2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序; 3、熟练掌握宏汇编程序MASM的使用; 4、熟练掌握连接程序LINK的使用; 5、学习数据传送及算数和逻辑运算指令的用法; 6、掌握分支程序的结构; 7、掌握分支程序的设计、调试方法; 8、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序; 二、实验环境 操作系统:Windows XP 调试软件:Edit Plus 3,MASM 5.0 上机地点:综合楼311 三、实验的预习内容 (1)熟悉上机练习过程和伪指令实验 实验预习内容:在实验前,充分熟悉Edit Plus 3的环境以及配置方法,熟悉各种debug 的常用指令:U、D、T、P、G、A、E及R命令的使用和含义,了解数据传送指令和算数以及逻辑运算指令的用法,在理论上了解数据的存储情况以及DD,DB,DW伪指令的用法和含义。 实验思路:按照书上的程序打入代码,进行汇编、连接和运行程序查看此时程序的运行情况,之后进入debug界面,分别使用U、D、T、P、G、A、E及R命令等常用指令,可查看此时的程序的执行状况以及此时寄存器的存储情况以及对于内存的使用情况。 程序一流程图:

程序二流程图: (2)顺序结构程序设计实验 实验预习内容:在实验前了解十进制,十六进制和ASCII 码之间的转换,了解如何从键盘中输入字符和回车换行,以及在屏幕中显示的汇编指令。 实验思路:从键盘中输入要计算的数字,将其进行平方运算,利用计算得到数字,了解十进制数字、十六进制数字与其对应ASCII 码的转换方法,将数字显示到屏幕上。 程序流程图: (3)分支程序设计实验 实验预习内容:在实验前了解分支结构的特点,明白跳转指令和程序转移指令的使用

汇编实验报告1

汇编语言上机实验报告 时间: 地点: 实验人员: 实验二 一、题目 1、《80X86汇编语言程序设计》教材中 P95的 3.7 题。 要求:(1)将该题改成一完整的程序(可以省略实验报告中的程序框图)。 (2)请事先指出依次执行每条程序指令后(AX)的内容。 (3)请事先指出执行ADD、SUB、SAL、RCL指令后,CF、ZF的值。 (4)记录上机执行后与(2)、(3) 中对应的内容。 说明:MOV 指令不影响标志位,DEC指令不影响CF标志位,NOT 指令不影响标志位。 2、《80X86汇编语言程序设计》教材中 P94的 3.3 题。 要求:(1)将该题改成一完整的程序,其中数据段的定义为习题3.1中的数据段(可以省略实验报告中的程序框图)。 (2)请事先画出数据段中数据的存储形式。 (3)请事先指出依次执行每条程序指令后相应寄存器中的内容。 (4)请事先给出各调指令在汇编后的形式。 (5)比较上机执行后,看到的各项内容是否与(2)、(3) ,(4)内容一致。不一致的应分析错误原因。 说明:MOV BX, OFFSET STR1+3 对应的汇编后的指令为:MOV BX, 3 MOV BX, STR1 对应的汇编后的指令为:MOV BX, [0000] (上条指令等价于MOV BX, DS:[0000] ) 3、《80X86汇编语言程序设计》教材中 P96的 3.11 题。 要求:(1)请事先指出程序运行结束后,显示器显示的内容。 (2)若将NUM的定义改成如下形式: NUM DB 35 显示的结果是什么? (3)若将NUM的定义改成如下形式: NUM DB 59 显示的结果是什么? (4)指出程序运行后看到的结果,若不一致,分析产生错误的原因。 4. 从键盘输入两串字符分别存入BUF1和BUF2区,比较两串内容是否相等, 相等显示“MATCH !”, 不相等显示“NO MATCH !”。 要求:(1) 使用10号功能调用输入字符串; (2) 使用9号功能调用输出提示信息; 提示:先比较长度是否相等。 5 选做题 输入一个无符号的数字串,然后以16进制形式显示出串的值。 例如: INPUT A NUMBER : 59

汇编语言第3次实验报告编译及伪指令功能分析

·四川大学计算机学院、软件学院 实验报告 学生姓名学号班级 学生专业计算机科学与技术学院计算机学院 课程名称汇编语言程序设计(第三次)实验时间2010年11月16日实验项目编译及伪指令功能分析报告撰写时间2010年11月16日 实验目的① ②用TD观察标号、常量和变量编译后的结果,加深对伪指令行为的理解; ③用TD观察编译程序对标号及变量名的自动管理; ④观察和理解系统对段寄存器及IP及SP的管理。 实验环境①X86系列桌面系统; ②UltraEdit-32、TASM、TLINK、TD。 实验内容 按实验代码asmtest.asm中的10个步骤完成相关内容,并做记录。

实验记录①目标代码数据段常量bits定义语句的编译结果是不留痕迹, 说明常量不分配储存空间。 ②目标代码常量bits引用语句的编译结果0ACH ,对应的寻址方式是 直接寻址方式。 ③目标代码标号lop定义语句的编译结果是不留痕迹,说明 没有为标号分配储存空间。 ④目标代码标号lop引用语句的编译结果:0FAH ,本质上该值是: 目标语句的ip和当前执行语句的差值。 ⑤将两nop语句的注释开,编译后目标代码标号lop引用语句的编译结果是 0F8 ,这体现了编译程序对标号的自动管理功能。 ⑥目标代码变量x在定义语句的编译结果:偏移量为0000H ;初值为 08H 。 ⑦目标代码变量x在引用语句的编译结果0000H ,对应的寻 址方式是直接寻址方式。 ⑧将变量定义语句y的注释打开,目标代码变量x的偏移量被更改为为 0200H ,这体现了编译程序对变量的自动管理功能。 ⑨实验代码要求注释的四个位置应注释为: 显示x的偏移量。 显示x的值。 显示标号Next的段基址的高16位 显示标号Next的偏移量的 教师评议 成绩评定:指导教师签名:

汇编实验报告

成绩:计算机原理实验室实验报告 课程:汇编语言与微机原理 姓名:李松 专业:通信工程 学号:112027231 日期:2014年6月 太原工业学院 电子工程系

实验一:输入输出实验 实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2014.5.8 一.实验内容 基本要求 1.熟悉emu8086仿真系统 2.实现控制台输入输出 3.设计并单步调试实现一位十进制数的加法运算(屏幕效果为3+2=5,红色为输入其他为自动输出) 扩展要求 1.实现两位十进制和的输出 2.实现一位十进制四则运算 实现多位数运算 思考内容 1.输入输出数据和计算用数据的区别 2.单字符输入输出和串输入输出的不同 二.理论分析或算法分析 基础要求: 1)实现两位十进制和的输出:利用了除法DIV,将商放在AL,余数放AH。除以10后可将AL和AH中小于10的数单独输出

三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等) 基本要求源代码: 扩展要求源代码: 四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等) 图一:2+3=5 图二:扩展一 1.由以上两个图得知,本实验验证了基本要求,实现了一位十进制数的加法运算、两位十进制和的输出的功能. 2.思考问题的个人想法,以及算法设想:从键盘中输入和从屏幕上输出的都是字符,和计算用的数据时间相差‘0’即30H 。所以一个数从屏幕上输出时将+30H 。输入时转换成数字-30H 五.结论 完成了本次实验要求的基本要求、扩展要求的实验内容。学会了如何使用仿真软件8086,实现了控制台输入输出,并能设计、调试实现一位十进制数的加法运算,以及实现两位十进制和的输出。 mov ah, 1 int 21h mov bl, al mov ah, 2 mov dl, '+' int 21h mov ah, 1 int 21h add bl, al mov ah, 2 mov dl, '=' int 21h mov dl, bl sub dl, 30h mov ah, 2 int 21h mov ah, 1 int 21h mov bl, al mov ah, 2 mov dl, '+' int 21h mov ah, 1 int 21h add bl, al mov ah, 2 mov dl, '=' int 21h mov dl, bl sub dl, 30h mov ah, 2 int 21h

重庆大学CAD实验报告1

CAD课程第1次实验报告任务及模板 实验一AutoCAD基本图形绘制 (成绩__________) 一、实验目的 1、掌握直线、园、园弧等命令 2、掌握对象捕捉的方法 3、掌握图幅设置、视图控制 二、实验项目内容 (1)将图幅设置成2号图纸放大100倍。 (2)完成图1-1的绘制,采用多种坐标形式。 图1-1 基本绘制命令练习 (3)采用line、arc、circle、solid、trace绘制图1-2

图1-2基本绘制命令练习 (4)采用pline的命令绘制图1-3 图1-3基本绘制命令练习 请对上面的过程进行抓图,并进行说明。要求对命令、参数、过程进行详细的叙述。 三、实验过程 1、将图幅设置成2号图纸放大100倍。 命令: limits 重新设置模型空间界限: 指定左下角点或[开(ON)/关(OFF)] <0.0000,0.0000>: 指定右上角点<420.0000,297.0000>: 594,420 命令: zoom 指定窗口的角点,输入比例因子(nX 或nXP),或者 [全部(A)/中心(C)/动态(D)/范围(E)/上一个(P)/比例(S)/窗口(W)/对象(O)] <实时>: s 输入比例因子(nX 或nXP): 100 2、完成图1-1的绘制,采用多种坐标形式。 命令: line 指定第一点: 5000,5000 指定下一点或[放弃(U)]: 5000,15000 指定下一点或[放弃(U)]: 15000,15000 指定下一点或[闭合(C)/放弃(U)]: 15000,5000 指定下一点或[闭合(C)/放弃(U)]: c

命令: line 指定第一点: 指定下一点或[放弃(U)]: @10000,0 指定下一点或[放弃(U)]: @0,10000 指定下一点或[闭合(C)/放弃(U)]: @-10000,0 指定下一点或[闭合(C)/放弃(U)]: c LINE 指定第一点: 指定下一点或[放弃(U)]: @10000<0 指定下一点或[放弃(U)]: @10000<90 指定下一点或[闭合(C)/放弃(U)]: @10000<180 指定下一点或[闭合(C)/放弃(U)]: c

汇编实验报告

南华大学 计算机科学与技术学院实验报告 (2011~2012 学年度第二学期) 课程名称汇编语言与接口技术姓名学号 专业班级 地点教师

实验一 熟悉debug 和指令系统 1. 本次实验的目的和要求 熟悉和了解debug 指令的使用和操作; 熟悉汇编语言指令系统; 熟悉在debug 环境下运行简单指令。 2. 实践内容或原理 比较字符串。试编写一程序:比较两个字符串string1和string2所含的字符是否相同,若相同则显示“match ”,否则显示“no match ” 3. 需用的仪器、试剂或材料等 (1)硬件环境 Pentium 计算机 (2)软件环境 windows 操作系统;debug ,masm5.0 4. 实践步骤或环节 (1)建立asm 文件 (2)输入汇编源程序 (3)用汇编程序masm 或者asm 对源文件进行汇编产生目标文件.obj (4)执行程序, 用debug 将程序装载到内存,用g 命令运行程序,观察结果。同时可以用e 命令修改数据等,将debug 命令一一进行使用,并观察相应结果。 5.实验结果 (1)实验流程图 否 是 (2)实验结果:给出程序运行结果,分析运行结果; 开始 初始化两个字符 比较字符串是否匹配 输出No match 输出Match 结束

(3)实验总结分析:总结实验过程的经验; 6.附录:提供含有注释的原程序清单。DATAS SEGMENT ;此处输入数据段代码 string1 db'Move the cursor backward.'

string2 db'Move the cursor backward.' mess1 db'Match.',13,10,'$' mess2 db'No Match.',13,10,'$' DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT main proc far ASSUME CS:CODES,DS:DATAS,ES:STACKS START: ;set up stack for return push ds sub ax,ax push ax ;set DS register to current data segment MOV AX,DA TAS MOV DS,AX mov es,ax lea si,string1 lea di,string2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp match: lea dx,mess1 disp: mov ah,09 int 21h ret main endp CODES ENDS END START 实验二顺序程序 1. 本次实验的目的和要求 掌握顺序程序的设计方法; 上机前做好准备,画好程序流程图,写好源程序清单。 2. 实践内容或原理 不用串操作指令,把字符串string1的内容传送到字符串string2,字符长度为count。

汇编实验报告

实验一数据传送 一、实验目的 1.1.熟悉8086指令系统的数据传送指令及8086的寻址方式。 2.2.利用Turbo Debugger调试工具来调试汇编语言程序。 二、实验预习要求 1.复习8086指令系统中的数据传送类指令和8086的寻址方式。 2.预习Turbo Debugger的使用方法(见附录二): a)a)如何启动Turbo Debugger; b)b)如何在各窗口之间切换; c)c)如何查看或修改寄存器、状态标志和存储单元的内容; d)d)如何输入程序段; e)e)如何单步运行程序段和用设置断点的方法运行程序段。 3.3.按照题目要求预先编写好实验中的程序段。 三、实验任务 1.通过下述程序段的输入和执行来熟悉Turbo Debugger的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下: MOV BL,08H BL=08 MOV CL,BL CL=08 MOV AX,03FFH AX=03FF MOV BX,AX BX=03FF MOV DS:[0020H],BX DS:[0020H]=03FF 2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下: MOV AX,0102H AX=0102 MOV BX,0304H BX=0304 MOV CX,0506H CX=0506

MOV DX,0708H DX=0708 PUSH AX SP=FFEC FFEC=02,FFED=01 PUSH BX SP=FFEA FFEA=04,FFEB=03 PUSH CX SP=FFE8FFE8=06,FFE9=05 PUSH DX SP=FFE6 FFE5=08,FFE6=07 出栈程序段请自行编写(用不同的出栈顺序)。 3.指出下列指令的错误并加以改正,上机验证之。 (1) MOV [BX],[SI] 操作数不能都是存储单元,改为BX,[SI] (2) MOV AH,BX 数据类型不一致,改为:AX,BX (3) MOV AX,[SI][DI] [SI][DI]不能同是变址,改为[BX][DI] (4) MOV BYTE PTR[BX],2000H BYTE PTR为8位类型,2000H为16位 (5) MOV CS,AX CS不能直接修改,因为它是程序段 (6) MOV DS,2000H DS是数据段 4. 设置各寄存器及存储单元的内容如下: (BX)=0010H,(SI)=0001H (10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H (10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH 说明下列各条指令执行完后AX寄存器中的内容,并上机验证。 (1) MOV AX,1200H AX=1200 (2) MOV AX,BX AX=0010 (3) MOV AX,[0120H] AX=CDAB (4) MOV AX,[BX] AX=3412 (5) MOV AX,0110H[BX] AX=CDAB (6) MOV AX,[BX][SI] AX=5634 (7) MOV AX,0110H[BX][SI] AX=EFCD

华中科技大学汇编实验报告6

华中科技大学汇编实验报告6

课程实验报告 课程名称:汇编语言程序设计实验 实验名称:实验六输入输出与中断处理程序设计 实验时间: 2016-4-26,14:00-17:30 实验地点:南一楼804室74号实验台 指导教师:张勇专业班级:计算机科学与技术201409班学号:U201414813 姓名:唐礼威 同组学生:无报告日期:2016年 5 月2日 原创性声明 本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。 特此声明! 学生签名: 日期: 成绩评定

指导教师签字: 日期:

目录 1实验目的与要求 (3) 2实验内容 (3) 3实验过程 (4) 3.1任务1 (4) 3.1.1设计思想及存储单元分配 (4) 3.1.2流程图 (4) 3.1.3源程序 (4) 3.1.4实验步骤 (6) 3.1.5实验记录 (7) 3.2任务2 (7) 3.2.1设计思想及存储单元分配 (7) 3.2.2流程图 (9) 3.2.3源程序 (9) 3.2.4实验步骤 (12) 3.2.5实验记录 (12) 3.3任务3 (14) 3.3.1设计思想及存储单元分配 (14) 3.3.2流程图 (14) 3.3.3源程序 (14) 3.3.4实验步骤 (17) 3.3.5实验记录 (17) 4体会 (18) 参考文献 (19)

1实验目的与要求 (1) 掌握中断矢量表的概念; (2)熟悉I/O访问,BIOS功能调用方法; (3) 掌握实方式下中断处理程序的编制与调试方法。 2实验内容 任务1:用三种方式获取中断类型码10H对应的中断处理程序的入口地址。 要求:首先要进入虚拟机状态,然后 (1)直接运行调试工具(TD.EXE),观察中断矢量表中的信息。 (2)编写程序,用DOS系统功能调用方式获取,观察功能调用相应的出口参数与“(1)”看到的结果是否相同(使用TD观看出口参数即可)。 (3)编写程序,直接读取相应内存单元,观察读到的数据与“(1)”看到的结果是否相同(使用TD观看程序的执行结果即可)。 任务2:编写一个接管键盘中断的中断服务程序并驻留内存,要求在程序返回DOS 操作系统后,键盘的按键A变成了按键B,而B变成了A。 要求: (1)在DOS虚拟机或DOS窗口下执行程序,中断服务程序驻留内存。 (2)在DOS命令行下按键A,屏幕显示为B,按B时屏幕显示为A。执行TD,在代码区输入指令“MOV AX,0”看是否能发生变化。 (3)选作:另外编写一个中断服务程序的卸载程序,将键盘中断服务程序恢复到原来的状态(也就是还原中断矢量表的信息)。 任务3:读取CMOS内指定单元的信息,按照16进制形式显示在屏幕上。 要求:

数据库报告模板

数据库报告模板 篇一:数据库实验报告范本 重庆大学经济与工商管理学院 实验报告 课程名称数据库原理及应用实验学期 XX 年至XX 年第 2 学期学生所在学院经济与工商管理学院年级XX专业班级电子商务01 班学生姓名 kcy 学号指导教师签名实验最终成绩 经管学院信息系制 实验报告须知 1、学生填写实验报告,请参照“实验教程”教材中的每章“综合练习”要求填写。填写格式见任课教师给出的实验报告样本填写。 2、完成的电子文档(文档、表格、演示文稿、程序、数据库设计、操作过程截图等)按任课教师的要求发往指定的网络服务器或电子邮箱。 3、学生应该填写的内容包括:封面相关栏目、实验题目、时间、地点、实验性质、实验目的、内容、结果和分析总结。

4、指导教师应该填写的内容包括:实验最终成绩、每次实验报告的成绩、评价并在实验报告本封面签名。 5、教师根据每学期该课程的实验教学要求,评定学生的实验成绩。在课程结束后两周内将教学班的实验报告汇总交考试中心存档。 6、未尽事宜,请参考该课程实验大纲和考试大纲。 《数据库原理及应用》课程实验报告(1) 篇二:数据库设计报告模板 1. 引言 引言是对这份软件系统详细设计报告的概览,是为了帮助阅读者了解这份文档如何编写的,并且应该如何阅读、理解和解释这份文档。 编写目的 说明这份软件系统详细设计报告是基于哪份软件产品需求分析报告、哪份软件产品概要设计报告和哪份软件产品数据库设计说明书(如果该软件产品需要数据库支持)编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统详细设计报告详尽说明了该软件产品的编码结构,从而对该软件产品的物理组成进行准确的描述。

汇编实验2实验报告

南京信息工程大学实验报告 实验名称用机器指令和汇编指令编程实验日期2017-10-26得分指导教师 汇编源程序编写-汇编-连接-调试 系计软院专业计科年级2016级班次姓名学号 一、实验目的 1. 理解栈的特性 2. 掌握汇编语言源程序编写→汇编→链接→调试的方法 二、实验准备 1. 复习第3章「栈」的知识:栈的特性、相关寄存器SS和SP、相关指令push和pop 2. 完成教材 3.6~3.9节内的问题3.6~3.10,检测点3.11~3.12 3. 预习第4章完整汇编源程序编写→汇编→连接→运行→调试的方法 4. 完成「三、实验内容」中要求提前从理论上分析记录的内容 三、实验内容 1.教材实验2(P71) (1)练习「1.预备知识:Debug的使用」 (2)在练习基础上,完成「2. 实验任务」 补充:对「2. 实验任务」中的(1)做如下调整: ①在使用a命令输入指令调试前,使用e命令将内存单元0020:0 ~0020:7连续8个字节数据修改为10H, 20H, 30H, 40H,50H,60H,70H,80H ②将P74实验任务(1)中第1行的mov ax, ffff→改为mov ax, 0020 实验前,请理论上分析指令执行后各个填空处的值,并记录下来。 2. 练习:完整汇编源程序编写→汇编→连接→运行→调试 第1步:编写一个完整的汇编源程序example.asm 第2步:对源程序example.asm进行汇编、连接、运行、调试 ①运行程序,观察程序输出结果是什么?将dl的值修改为0~9中任何一个数字,重新汇编→连接→运行,观察结果的变化。 ②对生成的可执行文件exampe.exe进行调试。使用r命令查看。观察寄存器cx的值是多少;观察寄存器ds和cs的值是多少,它们之间是否满足关系(cs)=(ds)+10H? ③使用u命令对exampe.exe进行反汇编,观察反汇编得到的源代码。 ④使用t命令和p命令(遇到int命令时,用p命令)单步调试,观察结果。 四、实验结论

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