当前位置:文档之家› 计算机汇编上机实验报告

计算机汇编上机实验报告

实验报告1二、实验题目:顺序程序设计三、实验类型:必做四、实验目的:1.了解汇编语言的程序结构。

2.理解汇编语言中由源程序文件到可执行文件的过程。

五、实验内容和步骤:1、实验内容:编程实现:当X=5时,求Y=3X4+5X3+6X2+4X+2.2、实验步骤:(1)首先对a1.asm进行汇编连接生成a1.exe文件。

(2)进行DEBUG程序并装入要调试的程序a1.exe。

如:DEBUG a1.exe;进入DEBUG并装配a1.exe(3)反汇编,确定每条指令的地址。

-U ;从当前地址进行反汇编-U200;从CS:200处开始反汇编反汇编可以确定断点地址,如:把断点地址设置在0120H处,则可以打入以下命令(4)G命令来设置断点。

-G120此时程序在0120H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的内容来以解程序运行是否正确。

(5)观察数据段的内容,即观察内存的内容-D DS:0000;从数据段的0单元开始显示128个字节。

-D DS:00000001;从数据段的0单元、1单元显示2个字节。

(6)退出DEBUG命令-Q六、实验结果:145A:001E 83C002 ADD AX,+02-u145A:0021 A30100 MOV [0001],AX145A:0024 B44C MOV AH,4C145A:0026 CD21 INT 21145A:0028 7509 JNZ 0033145A:002A E83F26 CALL 266C145A:002D 8946E8 MOV [BP-18],AX145A:0030 E80D97 CALL 9740145A:0033 F6065C3601 TEST BYTE PTR [365C],01145A:0038 7405 JZ 003F145A:003A E84126 CALL 267E145A:003D EB05 JMP 0044145A:003F E82A26 CALL 266C-g 145A:0021AX=0A70 BX=0005 CX=0038 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1459 ES=1449 SS=1459 CS=145A IP=0021 NV UP EI PL NZ AC PO NC145A:0021 A30100 MOV [0001],AX DS:0001=0000-tAX=0A70 BX=0005 CX=0038 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1459 ES=1449 SS=1459 CS=145A IP=0024 NV UP EI PL NZ AC PO NC145A:0024 B44C MOV AH,4C-d ds:0001 00021459:0000 70 0A七、实验总结:通过本次试验,我有很多收获。

我已经熟练掌握如何在Dos环境下运行汇编程序,并熟练掌握“DEBUG”、“-u”、“-g”、“-t”命令的使用,并对汇编语言的程序结构有了深刻的了解。

在编写程序过程中,我已经掌握了汇编一些基本指令,如:ADD、MUL、TEST、JZ/JNZ 等的使用方法。

2二、实验题目:分支程序设计三、实验类型:必做四、实验目的:1.掌握分支程序设计结构。

五、实验内容和步骤:1、实验内容:二路分支结构程序设计。

编程实现:从键盘输入一位数字,判断其奇偶性,并在屏幕输出一个标志,若为奇数,则输出1,否则输出0。

保存为a2.asm分析:输入采用DOS中断的1号功能调用,键入的一位数字的ASCII码在AL中,此时只需用TEST AL,01H,由结结果是否为0即可确定输入数字的奇偶性。

输出采用DOS中断的2号功能调用。

2、实验步骤:(1)首先对a2.asm进行汇编连接生成a2.exe文件。

(2)进行DEBUG程序并装入要调试的程序a2.exe。

如:DEBUG a2.exe;进入DEBUG并装配a2.exe(3)进入a2.exe对程序进行验证。

(4)验证无误,退出DOS环境。

六、实验结果:G:\0040WU~1>a2.exe11G:\0040WU~1>a2.exe2G:\0040WU~1>a2.exe31G:\0040WU~1>a2.exe11七、实验总结:通过本次试验,我已经掌握如何在Dos环境下运行汇编程序,并熟练掌握“DEBUG”、“-u”、“-g”、“-t”命令的使用,以及如何实现掌握分支程序设计结构。

在编写程序过程中,我已经掌握了汇编一些基本指令,如:ADD、MUL、TEST、JZ/JNZ等的使用方法。

3二、实验题目:顺序程序设计 三、实验类型:必做 四、实验目的:1.掌握分支程序设计结构。

五、实验内容和步骤:1、实验内容:多路分支结构程序设计。

编程实现:任意给定的x 值(-128≤x ≤127),求以下符号函数y 的值。

保存为a3.asm y=分析:假定x =-18,且存放在x 单元中,函数值y 存放在y 单元。

2、实验步骤:(1)首先对a3.asm 进行汇编连接生成a3.exe 文件。

(2)进行DEBUG 程序并装入要调试的程序a3.exe 。

如: DEBUG a3.exe ;进入DEBUG 并装配a3.exe (3)反汇编,确定每条指令的地址。

-U ;从当前地址进行反汇编-U200 ;从CS :200处开始反汇编 反汇编可以确定断点地址。

(4)G 命令来设置断点。

-G 145A :0018此时程序在145A :0018H 处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的内容来以解程序运行是否正确。

(5)T 命令来找到AX 的值。

(6)D 命令可以直接找到Y 的值,并显示。

(7)退出DOS 环境。

六、实验结果:F:\0040WU~1>debug a3.exe -u1457:0000 B85614 MOV AX,1456 1457:0003 8ED8 MOV DS,AX 1457:0005 A00000 MOV AL,[0000]1当x >00 当x =0 -1 当x <01457:0008 3C00 CMP AL,001457:000A 7D04 JGE 00101457:000C B3FF MOV BL,FF1457:000E EB08 JMP 00181457:0010 7404 JZ 00161457:0012 B301 MOV BL,011457:0014 EB02 JMP 00181457:0016 B300 MOV BL,001457:0018 881E0100 MOV [0001],BL1457:001C B44C MOV AH,4C1457:001E CD21 INT 21-g 1457:0018AX=14E7 BX=00FF CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1456 ES=1446 SS=1456 CS=1457 IP=0018 NV UP EI NG NZ NA PE NC1457:0018 881E0100 MOV [0001],BL DS:0001=00 -tAX=14E7 BX=00FF CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1456 ES=1446 SS=1456 CS=1457 IP=001C NV UP EI NG NZ NA PE NC1457:001C B44C MOV AH,4C-d ds:0001 00011456:0000 FF .七、实验总结:通过本次试验,我有很多收获。

我已经熟练掌握如何在Dos环境下运行汇编程序,并熟练掌握“DEBUG”、“-u”、“-g”、“-t”命令的使用,以及如何实现掌握分支程序设计结构。

在编写程序过程中,我已经掌握了汇编一些基本指令,如:ADD、MUL、TEST、JZ/JNZ 等的使用方法。

实验报告4二、实验题目:循环程序设计三、实验类型:必做四、实验目的:1. 掌握循环分支程序设计结构。

五、实验内容和步骤:1、实验内容:(1)复习循环程序的组成。

(2)单重循环。

编程实现:从X单元开始的30个连续单元中存入有30个无符号数,从中找出最大者送入Y单元中。

保存为a4.asm分析:可把第一个数先送入AL寄存器中,将AL中的数与后面的29个数逐个进行比较,如果AL中的数较小,则两数交换位置;如果AL中的数大于等于相比较的数,则两数不交换位置,在比较过程中,AL中始终保持较大的数,比较29次,则最大者必在AL中,最后把AL中的数(最大者)送入Y单元。

2、实验步骤:(1)首先对a4.asm进行汇编连接生成a4.exe文件。

(2)进行DEBUG程序并装入要调试的程序a4.exe。

如:DEBUG a4.exe;进入DEBUG并装配a4.exe(3)反汇编,确定每条指令的地址。

-U ;从当前地址进行反汇编-U200;从CS:200处开始反汇编反汇编可以确定断点地址。

(4)G命令来设置断点。

-G 1458:0018此时程序在1458:0018处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的内容来以解程序运行是否正确。

(5)T命令来找到AX的值。

(6)D命令可以直接找到Y的值,并显示。

(7)退出DOS环境。

六、实验结果:F:\0040WU~1>debug a4.exe-u1458:0000 B85614 MOV AX,14561458:0003 8ED8 MOV DS,AX1458:0005 A00000 MOV AL,[0000]1458:0008 BB0000 MOV BX,00001458:000B B91D00 MOV CX,001D1458:000E 43 INC BX1458:000F 3A07 CMP AL,[BX]1458:0011 7302 JNB 00151458:0013 8A07 MOV AL,[BX]1458:0015 49 DEC CX1458:0016 75F6 JNZ 000E1458:0018 A21E00 MOV [001E],AL1458:001B B44C MOV AH,4C1458:001D CD21 INT 211458:001F E8E80D CALL 0E0A-g 1458:0018AX=1463 BX=001D CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1456 ES=1446 SS=1456 CS=1458 IP=0018 NV UP EI PL ZR NA PE NC1458:0018 A21E00 MOV [001E],AL DS:001E=00 -tAX=1463 BX=001D CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1456 ES=1446 SS=1456 CS=1458 IP=001B NV UP EI PL ZR NA PE NC 1458:001B B44C MOV AH,4C-d ds:001e 001f1456:0010 63 00 c. 七、实验总结:通过本次试验,我有很多收获。

相关主题