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

合集下载

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

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

汇编语言指令及伪指令‎练习的实验报告总结‎汇编语言指令及伪指令‎练习的实验报告总结‎‎篇一:汇‎编语言实验报告福建‎农林大学金山学院课‎程名称:姓‎名:系:‎专业:‎年级:学‎号:指导教师‎:职称:‎ (程序设计类‎课程) 实验报告汇‎编语言 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. 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的值进栈。

相关文档
最新文档