实验二 用机器指令和汇编指令编程

合集下载

汇编语言指令及伪指令练习的实验报告总结(范文)

汇编语言指令及伪指令练习的实验报告总结(范文)

汇编语言指令及伪指令‎练习的实验报告总结‎汇编语言指令及伪指令‎练习的实验报告总结‎‎篇一:汇‎编语言实验报告福建‎农林大学金山学院课‎程名称:姓‎名:系:‎专业:‎年级:学‎号:指导教师‎:职称:‎ (程序设计类‎课程) 实验报告汇‎编语言 201X~2‎01X学年第二学期‎实验项目列表福建农‎林大学金山学院实验报‎告系:专‎业:年级:‎姓名:‎学号:‎实验课程:‎汇编语言实验室号:‎_ _1#6‎05 实验设备号:‎ I3 实验时‎间:201‎X.4.25‎指导教师签字:‎成绩:‎实验一汇编程序的‎汇编及运行1‎.实验目的和要求‎ (1)熟悉汇编程‎序的汇编、连接、执行‎过程;(2)‎生成LST文件,查看‎L ST文件;‎(3)生成BJ文件,‎修改语法错误;‎(4)生成EXE文‎件;(5)执‎行程序。

2.‎实验环境 IBM—P‎C机及其兼容机;实‎验的软件环境是:‎操作系统:‎ DS2.‎0以上;调试程序:‎ DEBUG.C‎M;文本编程程序:‎ EDIT.EX‎E、PS.EXE;宏‎汇编程序:M‎A SM.EXE(或A‎S M .EXE);连‎接装配程序:‎L INK .EXE;‎交叉引用程序:‎CREF.EXE(‎可有可无)。

‎3.实验内容及实验数‎据记录(1)‎将数据段输入,取名‎ 1.txt,保存‎在MASM文件夹下。

‎生成LST文件,(不‎必连接、运行)用ED‎I T查看1.L‎S T文件。

试回答:‎ DA1,DA2‎的偏移量分别是多少?‎C UNT的值为多少?‎DATA SEGM‎E NT RG 20H‎NUM1=8 NU‎M2=NUM1+10‎H DA1 DB ‘‎I BM PC’ CU‎N T EQU $-D‎A1 DATA EN‎D S DA2 DB ‎0AH, 0DH E‎N D(2)输‎入有错误的文件,修改‎错误语句。

(MASM‎没有出现错误即可。

不‎必连接、运行。

)‎D ATA SEGME‎N T VAR1 DB‎0, 25, DH‎,300 VAR2‎DB 12H, A‎4H, 6BH VA‎R3 DB ’ABC‎D EF’ VAR4 ‎D 1H, 5678‎H VAR5 D 1‎0H DUP(?) ‎D ATA ENDS ‎C DE SEGMEN‎T ASSUME C‎S: CDE, DE‎: DATA MV ‎D S, AX LEA‎SI, VAR5 ‎M V BX, FFS‎E T VAR2 MV‎[SI], 0AB‎H MV AX, V‎A R1+2 MV [‎B X], [SI] ‎M V VAR5+4,‎VAR4 MV A‎H, 4CH INT‎21H ENDS ‎E ND START ‎B EING MV A‎X, DATA CD‎E(3)输入‎正确的程序,汇编、连‎接、运行 STACK‎S SEGMENT ‎S TACK D 12‎8DUP(?) E‎N DS SEGMEN‎T ENDS SEG‎M ENT ASSUM‎E CS: CDES‎,DS: DATA‎S STACKS D‎A TAS DATAS‎CDES STRI‎N G DB ‘ELC‎M E!’, 13, ‎10, ‘$’ ST‎A RT: M‎V AX, DATA‎S MV DS, A‎X LEA DX, ‎S TRING MV ‎A H, 9 INT ‎21H MV AH,‎4CH INT 2‎1H CDES EN‎D S END STA‎R T4.算法‎描述及实验步骤 1)‎首先,用记事本输入‎各段程序,并储存成源‎程序,保存在MASM‎目录下。

微机原理实验系统调试命令与编程应用

微机原理实验系统调试命令与编程应用

微机原理实验系统调试命令与编程应用
微机原理实验系统通常是一个模拟的计算机系统,用于学习和实践微机原理相关的知识和技能。

在调试微机原理实验系统时,你可以使用一些命令和编程应用来执行各种操作。

以下是一些常见的命令和编程应用的示例:
1. 汇编语言编程:使用汇编语言编写程序,并通过汇编器将其转换为机器码。

可以使用指令集手册来了解特定处理器的指令集,并使用汇编语言进行编程。

2. 调试器:调试器是一个用于程序调试的工具,可以逐步执行程序,并检查程序状态、寄存器值和内存内容。

你可以使用调试器来跟踪程序的执行流程,定位问题和错误。

3. 单步执行:单步执行是指一次执行一条机器指令,并观察执行结果。

可以使用单步执行来逐步调试程序,以查看每个指令的影响和结果。

4. 断点设置:通过设置断点,你可以在程序执行到指定位置时暂停执行。

这允许你检查程序在该位置的状态,并进行必要的调试操作。

5. 寄存器操作:在微机原理实验系统中,你可以使用一些命令来读取和修改CPU寄存器的值。

这对于观察和调试程序时的寄存器状态非常有用。

6. 内存操作:可以使用命令来读取和写入内存中的数据。

你可以使用这些命令来观察和修改程序的数据区域,以及进行其他与内存相关的操作。

7. 输入/输出模拟:微机原理实验系统通常提供了输入和输出设备的模拟。

你可以使用相关的命令和编程应用来模拟输入设备(如键盘)的输入和输出设备(如显示器)的输出。

请注意,具体的命令和编程应用取决于你使用的微机原理实验系统的软件和硬件平台。

建议参考相关的文档和教材,以了解特定系统的详细调试命令和编程应用。

汇编语言第3版答案

汇编语言第3版答案

汇编语言第3版答案【篇一:汇编语言习题答案 (3)】一、选择题(四选一)1.表示一条处理器指令所在存储单元的符号地址是a 变量b 常量c 标号d 偏移量2.汇编语言中的变量有多种类型属性,但错误的类型是a 字节型byteb 字符型charc 字型wordd 双字型dword3.执行mov bx,seg var指令,bx得到变量var的。

a 物理地址b 段地址c 偏移地址d 内容4.masm语句中,采用a 逗号b 分号c 冒号d 空格5.欲设定从偏移地址100h开始安排程序,可使用a org 100hb start=100hc start db 100hd start equ 100h6.与“mov bx,offset var”指令等效的指令是a mov bx,varb 1ds bx,varc les bx,vard 1ea bx,var.7.下条语句buf db l0 dup(3 dup(?,10),3,10)汇编后,变量buf占有的存储单元字节数是 b 。

a 100b 80c 40d 208.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是。

a 0b 0ffffhc 1d 0ffh9.要求将a、b两个字符的ascii码41h和42h顺序存放在连续两个字节存储单元中,可选用的语句是 a 。

a db`ab'b dw `ab'c db 0abhd dw 0abh10.在汇编语言程序中,对end语句叙述正确的是a end语句是一可执行语句b end语句表示程序执行到此结束c end语句表示源程序到此结束d end语句在汇编后要产生机器码11.下面的数据传送指令中,错误的操作是a mov ss:[bx+di],byte ptr 10hb mov dx,l000hc mov word ptr[bx],1000hd mov ds,2000h12.下面指令执行后,变量dab中的内容是daw dw 2a05hdab db 0fah?mov al,byte ptr dawsub dab,ala 0dahb 0fahc 0f5hd 0d0h13.根据下面的语句序列,ax寄存器的内容是。

汇编指令实验

汇编指令实验

实验三汇编指令实验一实验目的1.熟悉ADS1.2软件开发环境;2.掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序;3.掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。

4.掌握ARM乘法指令的使用方法;5.了解子程序编写及调用。

二实验内容1.使用LDR指令读取0x30003100上的数据,将数据加1,若结果小于10,则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。

2.使用ADS1.2软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0,R1的值,打开存储器观察窗口(Memory)监视0x30003100上的值。

3. 使用STMFD/LDMFD,MUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算X n的值。

X n= X*X*X ……*X,其中相乘的X的个数为n个。

先将X的值装入R0和R1,使用寄存器R2进行计数,循环n-1次R0=R0*R1,运算结果就保存在R0中。

(不考虑溢出问题)注意:若n=0,则运算结果直接赋1;若n=1,则运算结果直接赋X。

三预备知识1.ARM指令系统内容;2.ADS1.2工程编辑和AXD调试的内容。

四实验设备硬件:PC机一台。

软件:Windows98/XP/2000系统,ADS1.2集成开发环境。

五实验步骤1. 实验内容1和实验内容2的步骤如下:(1)启动ADS1.2,使用ARM Executable Image工程模板建立一个工程arm1.mcp。

(2)建立汇编源文件arm1.s,编写实验程序,然后添加到工程中。

(3)设置工程连接地址RO Base为0x30000000,RW Base为0x30003000,如图3.1所示。

设置调试口地址Image entry point为0x30000000。

图3.1 设置工程连接地址图3.2 设置调试口地址(4)编译连接工程,选择Project|Debug,启动AXD进行软件仿真调试。

汇编语言程序设计

汇编语言程序设计

《汇编语言程序设计》课程教学大纲学时:32 学分:2理论学时:24 实验学时:8面向专业:电科、电信、通信课程代码:B2700009先开课程:C语言程序设计课程性质:必修执笔人:王艳春审定人:陈龙猛、张金政第一部分:理论教学部分一、说明1、课程的性质、地位和任务本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。

掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。

汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。

因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。

通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。

2、课程教学和教改基本要求课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。

通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。

学习这门课程,应达到以下几个要求:①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧;②具有阅读,分析汇编语言程序的能力;③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行过程及debug工具的调试手段。

课堂授课采用多媒体教学,采用由浅入深、循序渐进学习步骤,主要讲解设计思想、实现技巧,通过提问题引导学生思考,提高学生的学习兴趣,从而加深学生对理论课的理解,提高学生的动手能力。

二、教学内容与课时分配第一章基础知识(2学时)1.1 机器语言及汇编语言的产生1.2 汇编语言的组成1.3 存储器1.4 指令和数据1.5 存储单元及CPU对存储器的读写1.6 三大总线1.7 主板、接口卡及各类存储器芯片1.8 内存地址空间教学的重点与难点:指令和数据在内存或磁盘上没有区别;内存地址空间。

实验2-汇编语言上机环境及基本操作

实验2-汇编语言上机环境及基本操作

实验二汇编语言上机环境及基本操作一、实验目的及要求1 •掌握汇编语言源程序的书写格式和要求2 •掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

3. 学会使用记事本、MASMLINK、DEBU等软件工具。

4 •掌握将数据和代码都放在代码段的程序设计方法。

5. 掌握将数据和代码放不同段的程序设计方法。

6. 掌握用LOOP旨令构建循环程序二、实验内容1.练习:计算机上建立、汇编、连接、调试及运行程序的方法编写程序,计算2A121)在D盘建立一文件夹,命名(例如101),将和复制到此文件夹;在此文件夹中新建文本文件,文件名改为汇编源程序名,例如:用记事本打开,输入源程序并保存。

源程序:assume cs:codecode segme ntmov ax,2mov cx,11s: add ax,axloop smov ax,4c00hint 21hcode endsend2) 汇编源程序点开始菜单,点运行,输入CMD按回车,进入命令提示符窗口;输入D:并回车,打开D盘,再输入CD 101并回车,进入101文件夹;输入MASM 2e12并回车,一路按回车,进行汇编汇编过程的错误分警告错误(Warning Errors )和严重错误(Severe Errors) 两种。

其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。

这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。

汇编通过后,会生成目标文件3) 连接目标程序、输入LINK 2e12并回车,一路按回车连接成功后,会生成可执行文件4) 跟踪并调试可执行程序输入DEBUGS按回车,进入DEBU调试程序单步运行程序,跟踪程序,每执行一条指令,检查相关寄存器或存储器的数据,看看程序是否按我们的意愿运行,若有出入,修改源程序,重新汇编、连接、运行调试,直到成功编写程序计算100X 300,用循环结构实现完成否2 •将数据和代码都放在代码段的程序设计方法程序功能:将8个字数据累加求和,存入AX便于大家检查验证,将8个字设为1, 2,3, 4, 5, 6,7, 8assume cs:codesgcodesg segme ntdw 1,2,3,4,5,6,7,8start : mov bx,0mov ax,0v1.0可编辑可修改mov cx,8s: add ax,cs:[bx]add bx,2loop smov ax,4c00hint 21hcodesg endsend start调试程序,结果是否正确若将程序中的标号start去掉,结果如何DS吗add ax,cs:[bx]语句中段前缀为什么用CS能去掉吗能改为3•将数据和代码都放在不同的段,实现题2的功能assume cs:codesg,ds:datasgdatasg segme ntarray dw 1,2,3,4,5,6,7,8datasg endscodesg segme ntstart :mov ax,datasgmov ds,axmov bx,offset arraymov ax,0mov cx,8s: add ax,ds:[bx]add bx,2loop s mov ax,4c00h int 21hcodesg endsend start调试程序,结果如何比较3和2的源程序,多段程序设计与单一段程序设计4. 对题3的程序稍做修改,求出8个数中的最小数和最大数分别存入MIN和MAX 单元(若能力有限,只求其中之一)提示:用比较指令(P62)结合条件转移指令(P89),产生不同的程序分支要求简要描述解题思路,源程序要加上必要的注释。

实验2汇编语言基本指令操作练习指导书

实验2汇编语言基本指令操作练习指导书

实验二汇编语言基本指令操作练习一、实验要求和目的1、掌握汇编语言程序开发的整体流程;2、熟练掌握使用记事本编辑汇编语言源程序;3、熟练掌握汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用。

二、实验涉及的主要知识单元1、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以ASCII码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为 .OBJ的目标文件、扩展名为 .LST 的列表文件和扩展名为 .CRF 的交叉索引文件。

目标文件是必须建立的,它包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。

列表文件(.LST)中包含了源程序的全部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。

交叉索引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。

.LST 和.CRF两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。

在对源程序文件(ASM文件)汇编时,汇编程序将对ASM文件进行两遍扫描,若程序文件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即OBJ文件。

因此,汇编程序的主要功能可以概括为以下三点:(1) 检查源程序中的语法错误,并给出错误信息;(2) 产生目标程序文件(OBJ文件),并可给出列表文件(.LST文件);(3) 展开宏指令。

汇编程序是系统提供的用于汇编的系统软件,目前常用的汇编程序有Microsoft公司推出的宏汇编程序MASM(MACRO ASSEMBLER)和BORLAND公司推出的TASM(TURBO ASSEMBLER)两种。

指令系统和汇编语言程序设计实验

指令系统和汇编语言程序设计实验

第二章指令系统和汇编语言程序设计实验本章实验主要包括指令系统和汇编语言程序设计两部分。

采用软件模拟调试的方法,目的在于通过这些实验可以使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。

第一节指令系统实验实验一熟悉键盘操作及数传指令编程设计一、实验目的1.熟悉软件模拟调试的环境及键盘操作。

2.掌握汇编语言程序设计的方法,加深对指令的理解。

3.学会软件模拟调试和察看修改观察项的方法。

二、实验内容印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。

三、实验步骤1.进入调试软件环境,输入源程序;2.汇编源程序;3.用单步方式运行程序;4.检查并记录各寄存器和存储单元内容的变化。

四、程序清单1.内部RAM数据传送需要查看的数据有30H,31H,A,R0等。

ORG 0000HMOV R0,#30HMOV 30H,#45HMOV 31H,#46HMOV R2,30HMOV 02H,31HMOV A,#87HMOV 0E0H,30HMOV 30H,AMOV 31H,@R0SJMP $END2.外部数据传送需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。

ORG 0000HMOV A,#89HMOV DPTR,#2000HMOVX @DPTR,AINC DPTRCLR AMOVC A,@A+DPTRSJMP $ORG 2000HDB 44HDB 78HDB 67HEND3.堆栈操作需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执行后的变化情况和数据的存放次序等。

1)可用于保护现场和恢复现场的程序ORG 0000HMOV SP,#5FHMOV 50H,#3BHMOV 51H,#2FHMOV A,#12HPUSH 50HPUSH 51HPUSH ACCPOP 0E0HPOP 51HPOP 50HSJMP $END2)可用于数据交换的程序ORG 0100HMOV SP,#6FHMOV 50H,#3BHMOV 51H,#2FHPUSH 50HPUSH 51HPOP 50HPOP 51HSJMP $END4.数据交换记录每条指令运行后的结果,从而加深对各种不同的交换指令的理解。

实验二-汇编语言程序的上机步骤

实验二-汇编语言程序的上机步骤

实验二汇编语言程序的上机步骤一、实验目的熟练掌握汇编语言程序的上机步骤和程序调试方法。

二、实验内容及步骤1.通过CMD命令进入DOS方式。

2.通过CD命令和MD命令建立和进入用户程序目录。

3.将实验一笑脸程序补充为一个完整的汇编语言程序。

4.熟读第五部分内容:环境简介5.通过编辑——汇编——连接步骤生成.EXE形式的笑脸程序Smile.exe。

6.运行Smile.exe程序,观察运行结果。

7.用“DUBUG Smile.exe”命令将Smile.exe程序装入内存,通过R命令读取Smile.exe程序在内存的地址。

8.用反汇编U命令观察笑脸程序。

9.重复实验一“使用DEBUG调试程序”中的步骤(4)和(5),观察程序运行结果。

10.验证题以下程序段用以显示信息“Press any key when you ready.”。

在用户按下任一键后,另起一行显示信息“Input your password:”。

DSEG SEGMENT use16MESS1 DB ‘Press any key when you ready’,0AH,0DH,‘$’MESS2 DB ‘Input your password:’,’$’DSEG ENDSSSEG SEGMENT STACKDB 80H DUP(0)SSEG ENDSCSEG SEGMENTASSUME DS:DSEG,SS:SSEG,CS:CSEGSTART:MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESS1MOV AH,09HINT 21H ;显示“press any key when you ready.”MOV AH,08HINT 21H ;等待用户按任一键MOV DX,OFFSET MESS2MOV AH,09HINT 21H ;显示“Input your password:”MOV AH,4CHINT 21HCSEG ENDSEND START三、实验要求认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。

武汉理工汇编实验报告

武汉理工汇编实验报告
实验课程名称:_汇编语言
实验项目名称
分支和循环结构程序设计
实验成绩
实验者
专业班级
软件zy1302班
组别
同组者
实验日期
2015年5月23日
第一部分:实验分析与设计
1.实验内容描述(问题域描述)
1. 编写程序,将BX与DX中较大的一个无符号数放到AX中。
利用debug的u、g、d等命令观察相关寄存器的内容。
三、主要仪器设备及耗材
PC机
第二部分:实验调试与结果分析
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)
调试方法:
使用d命令、g命令、u命令等进行调试。
二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)
三、小结、建议及体会
通过本次实验我掌握了子程序设计的基本方法、调用和返回指令的使用,学习了子程序设计时参数传递的几种方法。成功完成了本次实验题目的同时提高了自己对汇编语言子程序设计的认识。我始终坚持使用记事本工具进行编程,我相信这样可以进一步提高自己。
调试方法:用Debug的R命令查看、改变CPU寄存器的内容;
用Debug的D命令查看内存中的内容;
用Debug的E命令改写内存中的内容;
用Debug的U命令将内存中的机器指令翻译成汇编指令;
用Debug的T命令执行一条机器指令;
用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。
二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)
用d命令查看Result存储单元的值
二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)
1、

实验二 汇编语言程序上机过程

实验二  汇编语言程序上机过程

实验二汇编语言程序上机过程实验目的:熟悉8086/88汇编语言编程格式及上机设计调试过程。

如图5-1所示。

实验器材:计算机一台,DOS或WINDOWS环境,、MASM.EXE、LINK.EXE、DEBUG.EXE 等程序文件。

实验内容及步骤:1、编辑录入源程序建议EDIT后的文件名不要省略,源程序扩展名必须为ASM,不能省略。

EDIT界面如图6-1所示,激活菜单用鼠标单击或ALT+菜单名的第一个字母。

最常用的文件下拉中Save(保存)、Exit(退出,若未存盘会提示是否存盘)两个命令,如果未存盘选择Exit则会弹出如图6-2所示的对话框询问是保存退出(Yes)、不保存退出(No)、取消返回继续编辑(Cancel)。

例如:执行如下命令图6-1 EDIT的基本界面图6-2 EDIT的Exit命令对话框2、汇编汇编命令格式如下:建议源程序基本名不要省略。

例如:;扩展名“.ASM”可省略若没有错误显示如下:Microsoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved.Object filename [aa.OBJ]: ;目标文件名Source listing [NUL.LST]: ;源程序列表文件,加行号便于查错Cross-reference [NUL.CRF]: ;交叉参考文件,名字信息49576 + 420869 Bytes symbol space free0 Warning Errors ;警告错误0 Severe Errors ;严重错误,若有此类错误,不能生成目标OBJ文件有关错误信息的含义请参看教材附录C。

如果省略源程序名则第一个提示信息为:Source filename [.ASM]: ;源程序文件名3、连接连接命令格式如下:建议目标程序基本名不要省略。

实验二、汇编语言程序的汇编与调试

实验二、汇编语言程序的汇编与调试

实验二、汇编语言程序的汇编与调试一、实验目的掌握汇编语言程序的汇编与调试过程,熟悉MASM、LINK、DEBUG等程序的使用。

了解列表文件与交叉参考文件的基本内容。

二、实验原理编制好汇编语言的源程序后,若要在机器上运行,必须经过如图1- 1所示的几个步骤:1、编辑源程序图1- 1 汇编语言程序的上机过程可以使用任何一种文本编辑程序编辑汇编语言源程序,通常使用DOS提供的文本编辑程序EDIT,具体使用方法为:从Windows进入MS-DOS方式,在DOS提示符后键入:EDIT [文件名]进入EDIT后,对源程序进行全屏幕编辑。

编辑完成后选择File菜单的Save命令保存文件,选择File菜单的Exit命令退出EDIT。

对于汇编语言源程序,其文件的扩展名约定使用ASM。

2、汇编汇编程序的基本功能是把用汇编语言编写的源程序翻译成机器语言目标代码,同时生成列表文件及交叉参考文件。

汇编程序的操作步骤为:在DOS提示符后键入:MASM 源程序文件名或MASM 源程序文件名,列表文件名,交叉参考文件名其中文件名不必给出扩展名,汇编程序会按照默认情况处理或产生。

若汇编后出现警告错误或严重错误,应调用EDIT对源程序进行修改,再重新汇编,直至无错误为止。

列表文件[.LST]和交叉参考文件[.XRF]有助于程序的分析和错误的查找,根据需要可以生成这两个文件(缺省时无)。

其中列表文件是文本文件,可用EDIT打开。

交叉参考文件是二进制文件,通过执行程序CREF.EXE,将二进制交叉参考文件转换为索引列表文件[.REF],具体方法为在DOS提示符后键入:CREF 交叉参考文件名3、连接汇编以后的目标代码的地址还是可浮动的相对地址,需要经过连接才能生成可执行程序。

连接程序的功能是连接多个目标代码模块(如果有的话),确定每个程序段的地址,形成可执行程序文件[.EXE]。

连接程序的操作步骤为:在DOS提示符后键入:LINK 目标代码文件名当目标代码文件不止一个时,各个目标代码文件名之间用+(加号)连接;也可以用命令行方式运行LINK程序,其格式为:LINK 目标文件名,可执行程序文件名,内存映象文件名,库文件名4、调试程序通过汇编和连接,排除了语法错误,并不一定能正确执行,这就需要使用动态排错程序。

汇编程序设计实验

汇编程序设计实验

汇编程序设计实验汇编程序设计实验是计算机科学与技术专业中一项重要的实践教学环节,它旨在培养学生对计算机硬件结构和低级语言程序设计的深入理解。

通过实验,学生可以学习到如何使用汇编语言编写程序,以及如何将这些程序转换为机器可以执行的指令。

实验目的1. 理解汇编语言的基本概念和语法结构。

2. 掌握汇编语言程序设计的基本方法和技巧。

3. 熟悉汇编程序的编写、编译、调试和运行过程。

4. 增强对计算机硬件工作原理的认识和理解。

实验环境- 汇编语言开发环境,如MASM、NASM等。

- 汇编器和链接器,用于将汇编源代码转换为可执行文件。

- 调试工具,如调试器,用于检查程序的执行过程。

实验内容1. 汇编语言基础- 学习汇编语言的指令集和操作数。

- 了解汇编语言的基本语法和程序结构。

2. 编写简单的汇编程序- 编写一个程序,实现数据的输入和输出。

- 编写一个程序,实现简单的算术运算。

3. 寄存器和内存操作- 学习如何使用寄存器进行数据存储和操作。

- 编写程序,实现内存地址的数据读写。

4. 循环和条件判断- 学习循环结构和条件判断的实现方法。

- 编写程序,实现循环和条件判断的功能。

5. 子程序调用- 学习子程序的编写和调用方法。

- 编写一个主程序和若干子程序,实现模块化编程。

6. 中断和异常处理- 了解中断和异常的基本概念。

- 编写程序,实现简单的中断服务程序。

7. 汇编与高级语言的接口- 学习如何将汇编程序与C/C++等高级语言程序进行接口。

- 编写程序,实现汇编语言与高级语言的混合编程。

实验步骤1. 环境搭建:安装并配置汇编语言开发环境。

2. 编写代码:根据实验要求编写汇编语言源代码。

3. 编译程序:使用汇编器将源代码编译为机器代码。

4. 链接程序:使用链接器将编译后的代码与其他必要的库链接成可执行文件。

5. 调试程序:使用调试工具检查程序的执行过程,找出并修复错误。

6. 运行程序:在适当的环境下运行程序,验证程序的正确性。

cpu组成与机器指令执行实验实验报告

cpu组成与机器指令执行实验实验报告

cpu组成与机器指令执行实验实验报告
CPU组成与机器指令执行实验实验报告
摘要:本实验旨在通过对CPU组成与机器指令执行的实验,深入了解CPU的
结构和工作原理,以及机器指令的执行过程。

实验结果表明,CPU由控制单元、运算单元和寄存器组成,通过时钟信号控制各个部件协调工作,而机器指令的
执行则是通过取指、译码、执行和写回四个阶段完成的。

1. 实验目的
通过实验,深入了解CPU的组成和机器指令的执行过程,加深对计算机硬件的
理解。

2. 实验内容
(1)CPU组成实验:通过拆解一台计算机,了解CPU的组成结构,包括控制
单元、运算单元和寄存器等部件。

(2)机器指令执行实验:通过搭建一个简单的计算机模型,模拟机器指令的执行过程,包括取指、译码、执行和写回四个阶段。

3. 实验步骤
(1)CPU组成实验:拆解计算机,观察CPU的各个部件,了解其结构和功能。

(2)机器指令执行实验:搭建计算机模型,编写简单的机器指令,模拟指令的执行过程。

4. 实验结果
(1)CPU组成实验:观察到CPU由控制单元、运算单元和寄存器组成,通过
时钟信号控制各个部件协调工作。

(2)机器指令执行实验:模拟了机器指令的执行过程,包括取指、译码、执行
和写回四个阶段,加深了对机器指令执行过程的理解。

5. 实验结论
通过本次实验,深入了解了CPU的组成和机器指令的执行过程,加深了对计算机硬件的理解,为进一步学习计算机原理打下了良好的基础。

综上所述,本次实验对于加深对CPU组成和机器指令执行过程的理解起到了积极的作用,为进一步学习计算机原理提供了良好的基础。

实验2 汇编语言程序上机过程

实验2 汇编语言程序上机过程

南昌大学汇编语言程序设计实验报告学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验2 汇编语言程序上机过程一.实验目的熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。

了解汇编语言程序的汇编、运行环境。

二.实验内容1.掌握常用的编辑工具软件(如WORD、EDIT)、MASM和LINK的使用;2.伪指令:SEGMENT,ENDS,ASSUME,END,OFFSET,DUP;3.利用的INT 21H的1号功能实现键盘输入的方法;三.实验要求1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的内容;2.了解利用的INT 21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法;3.阅读下面程序段。

四.实验环境PC微机DOS操作系统或Windows 操作系统MASM.EXE,LINK.EXE,或宏汇编集成环境五.实验步骤1、按步骤完成下列程序的编译、连接、运行及调试等过程:data segmentmessage db 'This is a sample program of keyboard and display'db 0dh,0ah,'Please strike the key!',0dh,0ah,'$'data endsstack segment para stack 'stack'db 50 dup(?)stack endscode segmentassume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21hagain:mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc displaycmp al,7ahja displayand al,11011111bdisplay:mov dl,almov ah,2int 21hjmp againexit:mov ah,4chint 21hcode endsend start实验步骤:1.用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。

汇编语言上机实验报告

汇编语言上机实验报告

汇编语言上机实验报告汇编语言上机实验报告引言:汇编语言是一种底层的计算机语言,通过使用汇编语言,我们可以更加深入地了解计算机的运行原理和底层机制。

本次实验旨在通过上机实践,掌握汇编语言的基本语法和编程技巧,同时加深对计算机底层的理解。

实验目的:1. 学习汇编语言的基本语法和指令集;2. 掌握汇编语言的程序设计和调试方法;3. 加深对计算机底层原理的理解。

实验环境:本次实验使用的是Windows操作系统,并安装了MASM汇编语言开发工具。

实验过程:1. 实验一:Hello World程序我们首先编写一个简单的Hello World程序,用于验证汇编语言的环境是否正常。

通过使用MASM工具,我们可以将源代码汇编成可执行文件,并在命令行中运行。

该程序的功能是在屏幕上输出"Hello World"。

```assembly.model small.stack 100h.datamsg db 'Hello World$'.codemain procmov ah, 09hlea dx, msgint 21hmov ah, 4chint 21hmain endpend main```通过编译、链接和运行,我们可以在屏幕上看到"Hello World"的输出。

2. 实验二:计算两个数的和在这个实验中,我们将学习如何编写一个简单的加法程序。

我们定义两个变量a和b,并将其值相加,然后将结果输出到屏幕上。

```assembly.model small.stack 100h.dataa db 10b db 20sum db ?.codemain procmov al, aadd al, bmov sum, almov ah, 09hmov dl, sumadd dl, 30hint 21hmov ah, 4chint 21hmain endpend main```在屏幕上,我们可以看到输出结果为"30",即10加20的和。

计算机课程实验报告-《汇编语言与微机原理》[1]

计算机课程实验报告-《汇编语言与微机原理》[1]

常熟理工学院
计算机科学与工程学院实验报告 2013-2014学年第 2 学期
课程名称汇编语言与微机原理
专业计算机科学与技术
班级计科121
学号090312115
姓名王海波
实验地点N6-106
指导老师张雪伍
实验报告要求
1.在实验课前要认真预习实验内容,熟习实验的原理、方法及算法等。

2.根据实验指导书要求,认真完成实验内容;实验结束后,按照实验报告的要求认真填写相关内容。

3.实验时要带好实验指导书、实验报告本。

4.实验时要严肃认真,不得互相抄袭。

5.实验课的成绩由实验预习、实验过程、实验结果和实验报告四部分构成。

用Debug进行实验的示例实验报告必须包含内容说明:。

实验二用机器指令和汇编指令编程

实验二用机器指令和汇编指令编程

《汇编语言》实验报告计算机科学系—班实验日期2014年09月_29_日姓名一学号—指导教师一、实验目的实验二用机器指令和汇编指令编程二、实验环境VM 虚拟机,windows server 2003三、实验内容及步骤实验内容:(1)使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。

mov ax,ffffmov ds,axmov ax,2200mov ss,axmov sp,0100mov ax,[0]add ax,[2]mov bx,[4]add bx,[6]push bxpop axpop bxpush [4]push ⑹push axEE > WMiM-vumMBI t ■勺 WOHfiinv v wtan HCJ ft.-3甥盂54■■1-・常 B BH S W S S M E ・M ■YMV —M< sty*dt4aiMOB aistn.:r!■壮X.山・•4+lUfttOawnu ・冋・J•r131 IM Mt Ri W 17 tl•f W II; Bl *b M M Mci n en u u ci %ACC t r <KII 紗IR Bi N HO 44-«・)”::::;:•< I? if A 缶■■尖・M>C£■£■舜Ai*ca iSC .・K卜'sr-<vriipn^CB.MW MMMM ttmrcctwHc»!■ El MNHBi »l -«MM V e» fl Pt »/■ PU MCM-MM M-MM £P wrr RMBitx ex HNII:iri・RBV •B.rfPFSSS 54S! ?!MM M.AKSIS?雷曲3yjssrK:©•■K1S? 5^!'■!■*■H*FV冷卅:部kJEnkMM(2)仔细观察图 3.19 中的实验过程,然后分析:为什么内容会发生变化?因为用T 指令进行调试时,会产生中断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《汇编语言》实验报告
计算机科学系班实验日期 2014 年 09 月 29 日
姓名学号指导教师
一、实验目的
实验二用机器指令和汇编指令编程
二、实验环境
VM虚拟机,windows server 2003
三、实验内容及步骤
实验内容:
(1)使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。

mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0]
add ax,[2]
mov bx,[4]
add bx,[6]
push ax push bx pop ax pop bx push [4] push [6]
(2)仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生变化?
因为用T指令进行调试时,会产生中断。

而为了保护现场,CPU则先将标志寄存器进栈、再把当前CS的值进栈,最后将IP的值进栈。

相关文档
最新文档