《汇编语言程序设计》 实验指导书2012.5.24)

合集下载

《汇编_语言》实验__指导书

《汇编_语言》实验__指导书
DATA SEGMENT
BUF DB “hello,world!$”
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
6、汇编命令A:
A命令的格式为:
-A [address]
该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。
7、反汇编命令U :
U命令有两种格式:
1)从指定地址开始,反汇编32个字节,其格式为:
-U[address]
例如:
067C:0110 03 41 42 43 44 45 46 47 - 48 49 4A 4B 4C 4D 4E 4F .ABCDEFGHIJKLMNO
067C:0120 41 A
说明:
左边是用十六进制表示的存储单元地址,0100至0120是DEBUG要显示的存储单元段内偏移地址,而067C是当前数据段的段首址。中间是每个字节存储单元的内容。右边表示每个字节可以显示的字符,“.”表示是不可显示的字符。D命令一行显示16个字节单元的内容,前8个字节与后8个字节之间用-连接。
一般情况下,MASM汇编程序的主要功能有以下3点:
(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在DOS状态下,可以采用宏汇编程序MASM对源程序文件进行汇编,方法是在DOS提示符下键入以下命令:
2.修改存储单元内容的命令E:
E命令有两种格式如下:
第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:

汇编语言程序设计指导书

汇编语言程序设计指导书

《汇编语言程序设计》实验指导书适用于计科专业2004级前言汇编语言实验主要使学生掌握DEBUG调试程序中各命令的利用方式,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方式。

本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计。

一、实验环境汇编语言程序设计的实验环境如下:1.硬件环境微型运算机(Intel x86系列CPU)一台2.软件环境Windows98/2000/XP操作系统任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)汇编程序(或)连接程序(或)调试程序(或)文本编辑器建议利用EDIT或NOTEPAD,汇编程序建议利用,连接程序建议利用,调试程序建议利用。

二、上机实验步骤1.肯定源程序的寄存目录建议源程序寄存的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

2.成立ASM源程序成立ASM源程序能够利用EDIT或NOTEPAD(记事本)文本编辑器。

注意,汇编语言源程序文件的扩展名最好起名为.ASM,如此能给后面的汇编和连接操作带来专门大的方便。

3.用汇编源程序产生OBJ目标文件源文件成立后,要利用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。

具体操作如下:方式一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把拖到程序图标上。

方式二:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:D:>C:<回车>C:>CD \ASM<回车>C:\ASM>MASM <回车>操作时的屏幕显示如图1所示。

图1 在DOS命令提示符窗口中进行汇编无论用以上二个方式中的哪个方式,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默许的目标文件名,建议输入目标文件的完整路径名,如:C:\ASM\〈回车〉。

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

重庆师范大学涉外商贸学院计算机各专业实验用书汇编语言程序设计实验指导书(第一版)张开成编前言为适应教学内容由简到繁、由易到难、由浅入深的教学特点,我们编写了这本简易实验指导书,用以指导实验教学。

该指导书分两部分,第一部分指出实验的实验目的、实验内容、实验准备、实验要求、共提出十五个实验,需三十个学时完成。

第二部分为十五个实验的全部程序,仅供学生参考。

该实验指导书由数计学院计算机教研室张开成同志编写。

2010年2月第一部分提出各实验的实验内容、实验目的、实验要求和学时分配实验一:汇编语言基本操作实验(2学时)一、实验目的:明确QE、MASM、LINK三个系统软件的作用。

掌握汇编语言程序的编辑、汇编、连接过程。

二、实验内容:1、编写一个程序:用十进制输出一个按键的AS CⅡ值。

2、从键盘上读入两个一位数(必须保证按下数字键),输出它们的积。

三、实验准备:1、预习QE、MASM、LINK 三个软件的使用方法。

2、按实验要求,编写好实验源程序。

四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。

2、汇编、连接生成扩展名为.EXE的可执行文件。

3、运行程序。

五、实验报告要求:1、总结用QE编辑源程序的方法。

2、说明源程序的连接、汇编过程。

3、分析运行结果。

4、按要求写出完整的实验报告(必须列出程序清单)。

实验二:分支程序设计实验(2学时)一、实验目的:1、学会简单分支和多分支程序的设计方法。

2、掌握程序的调试方法。

二、实验内容:1、从键盘读入两个一位数,输出它们的积。

若为非数字键,则显示字符“E”,退出程序。

2、从键盘接收一个按键,如为小写字母,则显示“L”,是大写字母,则显示“U”,如是数字,则显示“N”,都不是则显示“*”。

三、实验准备:1、预习分支程序设计方法。

2、按实验内容要求,编写好实验源程序。

四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。

2、汇编、连接生成可执行文件.EXE。

3、运行程序。

汇编语言程序设计实验指导

汇编语言程序设计实验指导

汇编语言程序设计实验指导【实验提要】以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6. X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。

旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086 CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。

(带*号的为选作内容)实验一调试工具DEBUG的应用实验目的通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG的功能;2、DEBUG命令: A,D,E,F,H,R,T,U的使用;3、BCD码、ASCII码及用十六进制数表示二进制码的方法;4、寄存器: AX,BX,CX,DX,FLAGS,IP。

内容及步骤注:本次实验可以参照教材上关于DEBUG的叙述内容进行。

一、DEBUG 命令使用1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG, 进入调试环境,显示提示符 '- '。

2、用命令 F 200 220 'AB' 将'AB'的两个ASCII码循环填入内存。

注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。

3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。

4、用命令 F230 23F 12 重复上二项实验,观察结果并比较。

5、用命令 E200 41 42 43 44 45将A-E的ASCII码写入地址为200开始的内存单元中,再用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。

6、用H命令检查下列各组十六进制数的和与差(补码表示):(1)56H,34H (2)23H,45H (3)AB,3045H注:输入 H 12 34 则在下一行显示0046 FFDE,即二者的补码和与差。

《汇编语言程序设计》实验指导书

《汇编语言程序设计》实验指导书

实验一简单程序编制和上机过程一.实验目的1.掌握计算机常用代码的软件转换技术。

2.熟悉DEBUG软件的使用。

3.掌握简单程序的编程方法。

二.实验内容代码转换是计算机和I/O设备进行信息交换的重要技术之一。

各种I/O设备所提供和接收的数据编码不尽相同。

为了处理这些信息,计算机必须将各种不同编码形式的信息转换成别种适当的数据形式。

例如,键盘输入的数据均为ASC Ⅱ码形式存储在内存中,通常要求将其转换成相应的数据形式。

一般实现代码转换有两种方法:1.软件法利用CPU的算术逻辑运算功能,通过运算或查表实现各种数据代码间的转换。

该方法经济但速度慢。

2.硬件法利用专用代码转换集成电路进行转换。

如74LS74可把BCD码转换为七段代码。

这种方法需要硬件费用,但速度快。

本实验要求掌握软件编码转换技术。

计算机常用的代码有二进制、八进制、十六进制、BCD码、ASCⅡ码、七段码等,它们之间的相互关系如下表所示。

本次试验的内容是ASCⅡ码转换为未组合BCD码设从键盘输入十进制数的ASCⅡ码已存放在起始地址CS :150H的单元中,把它转换成未组合BCD码后,再分别存入起始地址为CS:15AH的单元中。

若输入的不是十进制数的ASCⅡ码,则相应存放结果单元的内容为“FF”。

提示:1.组合BCD码是一位十进制数字占一个字节,高半字节为0,低半字节为该十进制数字的BCD码。

ASCⅡ码转换为未组合BCD码只需减30H。

2.程序框图如下图所示。

3.程序执行前,需要在CS:150H内存缓冲区写入待转换的ASCⅡ码。

方法如下:方法一:用A命令-ACS:150 DB 35,39,30,41,32CS:155 ∧C方法二:用E 命令-ECS:150,35,39,30,41,32方法三:用F命令-FCS:150 L5 35,39,30,41,321.执行程序后检查执行结果可用D命令:-DCS:15ACS:15A 05,09,00,FF,02ASCⅡ码转换为未组合BCD码的程序流程图参考程序如下:ORG 100HMOV CX,0005HMOV DI,150HBB:MOV BL,0FFHMOV A,[DI]CMP AL,3AHJNB DONESUB AL,30HJB DONEMOV BL,ALDONE:MOV AL,BLMOV [DI+0AH],ALINC DILOOP BBINT 20HORG 150HDB 35H,39H,30H,41H,32H实验二顺序结构的程序设计一.实验目的1.掌握计算机常用代码的软件转换技术。

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

实验一宏汇编MASM5.0运行环境一、实验目的1、熟悉的MASM5.0宏汇编程序运行环境2、掌握用MASM5.0运行汇编语言程序的步骤3、学习及掌握的debug程序的各种命令并调试汇编语言程序。

二、实验仪器计算机、masm汇编运行环境三、实验原理1、建立汇编语言的工作环境(1)编辑程序:EDIT .COM(2)汇编程序:MASM .EXE(3)连接过程:LINK.EXE(4)调试程序:DEBUG .EXE2、运行汇编语言程序的步骤(汇编语言程序的上机过程)在汇编实验步骤的word文档中(请下载参考)。

(1)用汇编程序建立源文件(*.asm)汇编程序:记事本,写字板或EDIT.EXE 。

(文本文件编辑器)扩展名为:.asm(2)用汇编程序(MASM、EXE)产生OBJ文件。

(3)用连接程序(LINK 、EXE)生成EXE文件。

(4)程序的执行直接输入文件名LINKEDIT记事本写字板MASM3、用DEBUG 运行、调试汇编语言程序(1)进入DEBUGC:\ DEBUG (前提DEBUG .COM 程序在C 盘)屏幕显示:- “-”这个符号是进入DEBUG的提示符,在该提示符下可键入任意DEBUG 命令,现在用A命令送程序。

(2)送程序并汇编-A 100169C:0100 MOV DL ,33169C:0102 MOV AH ,2169C:0104 MOV INT 21169C:0106 MOV INT 20169C:0101此程序已送完,并汇编成机器指令(3)现在用G命令一运送程序-G3看一下机器指令是什么样的用反汇编命令U(4)反汇编-U 100 :108段地址偏移地址指令169C :0100 B233 MOV DL ,33169C :0102 B402 MOV AH ,02169C :0104 CD21 INT 21169C :0106 CD20 INT 20169C :D108(5)用Q命令退出DEBUG 返回DOS-QC:\4、DEBUG 命令(1)汇编命令A格式1)A < 段寄存器名>:<位移> ;(段寄器)为段地址2)A <段地址> :<位移> ;(c s) 为段地址3)A <位移> ;4)A ;以CS:100作地址功能:键入该命令后显示的地址和位移并等待用户从键盘逐条键入汇编命令。

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

重庆师范大学涉外商贸学院计算机各专业实验用书汇编语言程序设计实验指导书(第一版)张开成编前言为适应教学内容由简到繁、由易到难、由浅入深的教学特点,我们编写了这本简易实验指导书,用以指导实验教学。

该指导书分两部分,第一部分指出实验的实验目的、实验内容、实验准备、实验要求、共提出十五个实验,需三十个学时完成。

第二部分为十五个实验的全部程序,仅供学生参考。

该实验指导书由数计学院计算机教研室张开成同志编写。

2010年2月第一部分提出各实验的实验内容、实验目的、实验要求和学时分配实验一:汇编语言基本操作实验(2学时)一、实验目的:明确QE、MASM、LINK三个系统软件的作用。

掌握汇编语言程序的编辑、汇编、连接过程。

二、实验内容:1、编写一个程序:用十进制输出一个按键的AS CⅡ值。

2、从键盘上读入两个一位数(必须保证按下数字键),输出它们的积。

三、实验准备:1、预习QE、MASM、LINK 三个软件的使用方法。

2、按实验要求,编写好实验源程序。

四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。

2、汇编、连接生成扩展名为.EXE的可执行文件。

3、运行程序。

五、实验报告要求:1、总结用QE编辑源程序的方法。

2、说明源程序的连接、汇编过程。

3、分析运行结果。

4、按要求写出完整的实验报告(必须列出程序清单)。

实验二:分支程序设计实验(2学时)一、实验目的:1、学会简单分支和多分支程序的设计方法。

2、掌握程序的调试方法。

二、实验内容:1、从键盘读入两个一位数,输出它们的积。

若为非数字键,则显示字符“E”,退出程序。

2、从键盘接收一个按键,如为小写字母,则显示“L”,是大写字母,则显示“U”,如是数字,则显示“N”,都不是则显示“*”。

三、实验准备:1、预习分支程序设计方法。

2、按实验内容要求,编写好实验源程序。

四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。

2、汇编、连接生成可执行文件.EXE。

3、运行程序。

汇编语言程序设计实验指导

汇编语言程序设计实验指导

第2章汇编语言程序设计实验2.1、实验1-1——多字节数的运算1、实验目的熟悉汇编语言的上机环境和各种工具(编辑、汇编、连接、调试);掌握完整段和简化段两种汇编程序的编写;掌握简单汇编程序的处理和调试过程。

2、实验内容⑴、两个长度为3个字节(3B)的二进制无符号数,分别存放在首地址为buf1和buf2的连续内存单元中,编程求这两者之和,并将结果放在起始地址为res的内存单元中。

例如,这两个数据为888888H、456789H,则其和应为[1]345671H。

(00CDF011H,对应十进制数表示13496337,)要求:☞用完整段和简化段两种方式实现。

☞观察它们的反汇编结果并进行比较,单步运行程序。

注意:☞程序运行前先将res清0,程序运行后观察res单元中的数据是否符合预期。

☞数据存放应“高对高、低对低”。

⑵、将两数改为3B的压缩BCD码,重复以上实验过程。

例如,这两个数据为888888H、456789H,则其和应为[1]345677H(表示[1]345677)。

☞注意,每两个字节相加后,应紧接着进行二-十进制调整。

3、实验扩展和思考⑴、计算两个长度为3B的二进制数据之差应如何进行操作?⑵、计算两个长度为3B的压缩BCD码数据之差应如何进行操作?================================================================================实验报告================================================================================●方案描述●程序清单2.2、实验1-2——BCD码操作(参考课本P72,例3.5)(如果要求转换为ASCII 码显示出来呢?)1、实验目的掌握BCD码的操作,包括压缩BCD码的分离和非压缩BCD码的压缩等。

2、实验内容⑴、将存放在首地址为buf的5B的压缩BCD码分离为10B的非压缩BCD码,并存于首地址为res的单元中。

汇编语言指导书

汇编语言指导书

实验内容及步骤 一、利用查表方法把DX的内容(十六进制数)转换成ASCII码 1、用A命令键入下列程序: MOV BX,1000 MOV DI,2000 MOV CX,4 LOP: PUSH CX MOV CL,4 ROL DX,CL POP CX MOV AL,DL AND AL,0F XLAT CLD STOSB LOOP LOP INT 20 2、用A命令在1000H处键入下列ASCII码并用D命令检查之: DB …0123456789ABCDEF? 用D命令检查时注意左边的ASCII码值和右边的字符。 4、用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查)。 5、用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。可注意屏幕右边的ASCII字符与DX是否一致。 二、数据串搬家程序: 1、用A命令键入下列程序: MOV SI,1000 MOV DI,1500 MOV CX,0F LOP: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP LOP INT 20 2、用A命令DB伪指令在1000H键入下列字符串: ‘IBM_PC COMPUTER'
在操作时要注意提示信息,并按提示操作。 二、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。 三、熟悉汇编语言的编程过程 1、首先在运行菜单中运行CMD命令,进入DOS状态。 2、切入D:盘,进入MASM。 3、用EDIT <文件名.asm> 命令编辑下列源程序。 data segment message db "Hello World!",'$' data ends code segment assume cs:code,ds:data begin:mov ax,data mov ds,ax mov dx,offset message mov ah,9 int 21h mov ah,4ch int 21h code ends end begin 4、用MASM <文件名> 命令编译源程序。(如果出错,则需要重新编 辑,修改错误)。 5、用LINK <文件名>命令连接目标文件,生成可执行文件。(可以用 DIR命令查一下—)。 6、运行该可执行文件,检查是否正常输出字符串。 实验报告要求

《计算机组成原理-汇编语言程序设计》实验指导书

《计算机组成原理-汇编语言程序设计》实验指导书

Move the cursor backward.Move th e cursor forward . Macth...$No ma tch!..$......... .+@P8n..X.@.6... >..l9..s&t...;.k ...2.4.N!K.u.@z"
4
-Q↙ 至此,程序已调试完毕。为了进一步说明 DEBUG 命令的使用方法,我们再次重复上述程序的调试 过程,只是改用 E、A 和 F 命令来修改数据区的内容。必须注意:由于在 DEBUG 状态下只能修改 有关内存单元的内容,因此,重新用 DEBUG 装入程序时,仍是原来未修改的程序。操作如下: DEBUG A01.EXE↙ -G 0B↙ AX=19EE BX=0000 CX=007A DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=19EE ES=19EE SS=19EE CS=19F3 IP=000B NV UP DI PL ZR NA PE NC 19F3:000B 8D36000 LEA SI,[0000] -D 0↙ 19EE:0000 4D 6F 76 65 20 74 68 65-20 63 75 72 73 6F 72 20 Move the cursor 19EE:0010 62 61 63 6B 77 61 72 64-2E 4D 6F 76 65 20 74 68 backward.Move th 19EE:0020 65 20 63 75 72 73 6F 72-20 62 61 63 6B 77 61 72 e cursor backwar 19EE:0030 64 2E 4D 61 74 63 68 2E-0D 0A 24 4E 6F 20 6D 61 d.Macth...$No ma 19EE:0040 74 63 68 21 0D 0A 24 00-00 00 00 00 00 00 00 00 tch!..$......... 19EE:0050 1E 2B C0 50 B8 EE 19 8E-D8 8E C0 8D 36 00 00 8D .+@P8n..X.@.6... 19EE:0060 3E 19 00 FC B9 19 00 F3-A6 74 06 8D 16 3B 00 EB >..l9..s&t...;.k 19EE:0070 04 8D 16 32 00 B4 09 CD-21 CB FF 75 01 40 5A 22 ...2.4.N!K.u.@z" 用 E 命令将数据区的字符串 backward.修改为 forward. ,操作如下: -E29 'forward.'20↙ 再次用 D 命令查看修改结果: -D 0↙ 19EE:0000 4D 6F 76 65 20 74 68 65-20 63 75 72 73 6F 72 20 19EE:0010 62 61 63 6B 77 61 72 64-2E 4D 6F 76 65 20 74 68 19EE:0020 65 20 63 75 72 73 6F 72-20 66 6F 72 77 61 72 64 19EE:0030 2E 20 4D 61 74 63 68 2E-0D 0A 24 4E 6F 20 6D 61 19EE:0040 74 63 68 21 0D 0A 24 00-00 00 00 00 00 00 00 00 19EE:0050 1E 2B C0 50 B8 EE 19 8E-D8 8E C0 8D 36 00 00 19EE:0060 3E 19 00 FC B9 19 00 F3-A6 74 06 8D 16 3B 00 EB 19EE:0070 04 8D 16 32 00 B4 09 CD-21 CB FF 75 01 40 5A 22 用 G 命令继续运行程序,结果为: -G↙ No match!

简化:《汇编语言程序设计》实验指导书-定稿

简化:《汇编语言程序设计》实验指导书-定稿

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 简化:《汇编语言程序设计》实验指导书-定稿《汇编语言程序设计》实验指导书(第一版)邵桂芳黄贤英刘政肖朝晖编重庆工学院计算机学院 2006 年年10 月目录有关汇编语言 ........................................................ ........................................................... .. 3 实验一汇编语言上机操作过程(验证性实验) ...................................................... ..... 4 实验二DEBUG 的使用(验证性实验) ...................................................... ................ 12 实验三基本运算程序设计(设计性实验) ...................................................... ........... 22 实验四顺序程序设计(设计性实验) ............................................ 错误! 未定义书签。

实验五字符处理程序设计(设计性实验) .................................... 错误! 未定义书签。

实验六分支程序设计(设计性实验) ............................................ 错误! 未定义书签。

实验七循环程序设计(设计性实1 / 3验) ............................................ 错误! 未定义书签。

《汇编语言》实验指导书

《汇编语言》实验指导书

《汇编语言》实验指导书计算机学院硬件实验室目录第1部分实验预备知识1.1汇编语言程序的上机操作过程1.2常用DEBUG命令的功能第2部分汇编语言实验实验1 DEBUG基本命令使用 (8)实验2 汇编语言程序的调试与运行 (9)实验3 顺序结构程序设计 (10)实验4分支程序设计 (11)实验5循环程序设计 (12)实验6子程序设计 (15)实验7中断服务程序设计 (16)实验8综合程序设计 (17)实验932位80x86程序设计 (20)第1部分实验预备知识汇编语言程序设计是一门实践性很强的课程。

编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。

建立程序、调试程序需要一些应用程序的帮助。

下面先介绍一些与上机操作有关的应用程序,以为第二部分的实验做出必要的准备。

1.1汇编语言程序的上机操作过程一、所需文件为运行汇编语言程序至少要在磁盘上建立以下文件:(编辑程序)或其他编辑软件MASM.EXE (汇编程序)LINK.EXE(连接程序)DEBUG.EXE(调试程序,DOS外部命令文件)二、运行汇编语言程序的操作步骤1.用编辑程序建立.ASM源文件;2.用汇编程序把ASM文件转换成.OBJ文件;3.用连接程序把OBJ文件转换成.EXE文件;4.用DOS命令直接输入文件名就可执行该程序。

三、汇编语言源程序上机操作过程第一步:建立汇编源程序(即:建立文件名.asm)这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。

将源程序代码录入计算机的方法很多,下面将介绍具体方法。

(1)通过windows自带的EDIT.EXE文本编辑器进行输入。

双击图标或在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。

《汇编语言》实验指导书

《汇编语言》实验指导书

《汇编语言》实验指导书计算机学院网络工程系李冬艳2016. 10. 1实验一汇编语言上机环境及基本操作一、实验目的及要求1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和互相之间的关系。

2.娴熟掌握在计算机上成立、汇编、连结、调试及运转程序的方法。

二、实验内容1.汇编语言源程序的成立本例中给出的程序是要求编写 3+5=8 的程序,并把 8 存入 AL 或 AX中。

设定源程序的文件名为。

( 用任何一个种文本编写器编写此程序,存盘 )或双击桌面的“ Masm for Windows 集成实验环境 2012.5 ”快捷文件图标,进入汇编语言集成开发环境DATASSEGMENT;此处输入数据段代码DATASENDSSTACKSSEGMENT;此处输入货仓段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;======================================MOVAX ,3 ;自己写的代码MovBX ,5 ;自己写的代码ADDAX ,BX ;自己写的代码(只有3条);此处输入代码段代码;======================================MOVAH,4CHINT 21HCODESENDSENDSTART程序输入完成后必定要将源程序言件存入盘中,以便进行汇编及连结,也能够再次调出源程序进行改正。

2.将源程序言件汇编成目标程序言件一般状况下,汇编程序的主要功能有以下 3 点:(1)检查源程序中存在的语法错误,并给犯错误信息。

(2)源程序经汇编后没有错误,则产生目标程序言件,扩展名为.OBJ。

(3)若程序中使用了宏指令,则汇编程序将睁开宏指令。

3.用链接程序生成可履行程序言件经汇编此后产生的目标程序言件(.OBJ 文件)其实不是可履行程序言件,一定经过链接此后,才能成为可履行文件(即扩展名为.EXE)。

《汇编语言程序设计》-实验指导书

《汇编语言程序设计》-实验指导书

《汇编语言程序设计》课程实验指导书(Assembly Language Programming)计算机科学与技术系杨定安编写佛山科学技术学院摘要汇编语言实验主要使学生掌握DEBUG或DEB2000调试程序中各命令的使用方法,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方法。

本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计。

目录实验一宏汇编程序(MASM)及汇编语言上机过程 (3)实验二程序的基本结构练习 (8)实验三汇编编译器的使用及程序调试 (11)实验四分支程序设计 (17)实验五循环程序设计 (19)实验六子程序设计 (23)实验七汇编语言与C语言混合程序设计 (29)实验一宏汇编程序(MASM)及汇编语言上机过程一、实验目的1.通过实验了解和熟悉微机系统的配置。

2.学习在DEBUG状态下输入汇编源程序的方法。

3.初步掌握调试(在DEBUG状态下)的过程。

二、实验原理1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。

用单步跟踪的方法验证指令的功能。

2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。

注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。

三、实验仪器微机一台,U盘一块。

四、实验步骤1.开机和关机操作顺序开机:先打开微机外部设备电源开关,如显示器,最后打开主机电源开关。

关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。

2. 装入DEBUG程序若计算机系统启动正常,可以进入MASM文件夹或MASM5文件夹从磁盘上调用DEBUG,程序到内存。

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

《汇编语言程序设计》课程实验指导书(Assembly Language Programming)计算机科学与技术系杨定安编写佛山科学技术学院2012 年 5 月摘要汇编语言实验主要使学生掌握DEBUG或DEB2000调试程序中各命令的使用方法,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方法。

本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计。

目录实验一宏汇编程序(MASM)及汇编语言上机过程 (4)实验二程序的基本结构练习 (8)实验三汇编编译器的使用及程序调试 (11)实验四分支程序设计 (17)实验五循环程序设计 (19)实验六子程序设计 (23)实验七汇编语言与C语言混合程序设计 (29)实验一宏汇编程序(MASM)及汇编语言上机过程一、实验目的1.通过实验了解和熟悉微机系统的配置。

2.学习在DEBUG状态下输入汇编源程序的方法。

3.初步掌握调试(在DEBUG状态下)的过程。

二、实验原理1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。

用单步跟踪的方法验证指令的功能。

2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。

注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。

三、实验仪器微机一台,U盘一块。

四、实验步骤1.开机和关机操作顺序开机:先打开微机外部设备电源开关,如显示器,最后打开主机电源开关。

关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。

2. 装入DEBUG程序若计算机系统启动正常,可以进入MASM文件夹或MASM5文件夹从磁盘上调用DEBUG,程序到内存。

如是WINDOWS环境下,先运行CMD命令,然后运行CD MASM命令,再运行DEB2000命令。

一般C盘上装有DEBUG和DEB2000软件,若没有,可以用复制命令从其它盘拷贝过来,然后从装有DEBUG和DEB2000软件的磁盘上调用DEBUG和DEB2000软件程序。

例如:C :\MASM> DEB2000↙(↙回车符)-(-DEBUG 提示符)当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。

4. 用DEBUG的Register命令检查所有寄存器内容,并作记录。

命令格式:R [寄存器名]检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态;格式为:-RR命令显示中标志位状态的含义如下表所示:标志名置位复位溢出Overflow(是/否)OV NV方向Direction(减量/增量)DN UP中断Interrupt(允许/屏蔽)EI DI符号Sign(负/正)NG PL零Zero(是/否)ZR NZ辅助进位Auxiliary Carry(是/否)AC NA奇偶Parity(偶/奇)PE PO进位Carry(是/否)CY NC 2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如打入:-R AX系统将响应如下:AX FIF4:表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BXBX 0369:059F则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为:-RF系统将给出响应,如OV DN EI NG ZR AC PE CY-这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。

如OV DN EI NG ZR AC PE CY-PONZDINV5. 用DEBUG的Assemble命令输入汇编源程序。

格式:A [内存地址]注:用“[ ]”符号括起来的部分表示可以省略。

该命令的功能是从指定的内存地址开始(括号不要输入)逐条输入汇编语言源程序并汇编成机器码存入内存。

若地址缺省,则接上一个A命令最后一条指令之后输入汇编语句,若没有用过A 命令,则从CS:0100H地址开始输入。

例如:-A0CD3:0100-在输入A命令之后,或每输入一条指令之后,显示器的左端给出了内存的段地址和偏移地址。

每条指令均用回车(↙)结束。

若输入的指令有语法错误,DEBUG拒绝接收,并给出提示,此时可以重新输入。

程序的最后一条指令输入完之后,再按一次回车键(↙),即可结束汇编命令,回到DEBUG提示符“-”状态。

6. 用DEBUG的Unassemble命令反汇编。

命令格式:U [起始地址[终止地址]]该命令的功能是从起始地址到终止地址反汇编目标码,缺省值是接上一个U命令或从CS:0100H地址开始。

例如:-U显示器上将显示程序的内存地址、指令机器码的汇编源程序三列对照清单。

7. 用DEBUG的Trace命令单步跟踪程序。

命令格式:T [ =起始地址] [指令条数] 注意:=符号不能缺该命令的功能是从指定的起始地址开始逐条执行指令,每执行完一条指令,屏幕显示所有寄存器内容和下一条指令地址和指令。

若[=起始地址]缺省,则T命令从CS:IP地址开始执行指令。

例如:-T↙重复这一过程,即可看到每条指令执行后,所有寄存器和标志寄存器的标志位内容。

此时,要检查内存单元的数据,可用DEBUG的Dump命令,命令格式:D[起始地址[终止地址]]该命令的功能是从起始地址到终止地址,连续显示存贮器单元的内容。

若地址缺省,则接上一个D命令或从DS:0100H地址开始显示。

例如:-D↙参考程序:MOV AX, 2000 ; AL=MOV DS, AX ; DS=NOT AX ; AX=XOR AX, AX ; AX=DEC AX ; AX=INC AX ; AX=MOV BX, 2030 ; BH=MOV SI, BX ; SI=MOV [SI], BL ; [2030H]=MOV WORD PTR[SI], 10F ; [2030H]= [2031H]=MOV DI, SI ; DI=MOV [DI+50], BH ; [DI+50H]=MOV BH, [SI] ; BH=MOV BL, [DI+50] ; BL=MOV SP, 5000PUSH AX ; AX= [SS:4FFEH]= [SS:4FFFH]=PUSH BX ; BX= [SS:4FFCH]= [SS:4FFDH]=POP AX ; AX=POPF ; F=NEG BX ; BX=XCHG BX, AX ; BX=STD ; F=STI ; F=CLD ; F=CLI ; F=ADC DI, 2050 ; DI= F=ADC SP, DI ; SP= F=ADC AX, 1500 ; AX= F=SUB AX, BX ; AX= BX=SHL AH, 1 ; AH=RCL AX, 1 ; AX=SHR BH, 1 ; BH=RCR BL, 1 ; BL=MOV CL, 4MOV DX, 80F0ROL DX, CL ; DX= CL=INT 20 ; CS= IP=五、实验报告要求1. 整理每条指令执行的结果,填到打印清单的右半部分(应注意内存数据检查的正确性)。

2. 比较实验记录与理论分析的结果是否相同,若有不同,找出差别及问题所在。

3.总结本次实验的体会。

实验二程序的基本结构练习一、实验目的1. 熟悉IBM PC机的基本指令。

2. 继续熟悉计算机键盘及各功能键(参阅DOS操作手册)。

3. 继续学习DEBUG命令。

4. 验证指令的功能。

二、实验原理在DEBUG状态下,分别输入下面各程序段,每输入完一个程序段,用G命令进行连续方式执行程序,在连续执行时,要记录程序的执行结果。

参考程序:1. 在内存10000H单元开始,建立00H~0FH~00H 31个数,要求00H~0FH数据逐渐增大,0FH~00H逐渐减小。

该程序从内存CS:0100H地址开始输入。

首先运行A100命令进入输入汇编语句状态。

13A2:0100 MOV AX, 100013A2:0103 MOV DS, AX13A2:0105 MOV SI, 013A2:0108 MOV CL, 0F13A2:010A XOR AX, AX13A2:010C MOV [SI], AL13A2:010E INC SI13A2:010F INC AL13A2:0111 DEC CL13A2:0113 JNZ 010C13A2:0115 MOV CX, 1013A2:0118 MOV [SI], AL13A2:011A INC SI13A2:011B DEC AL13A2:011D LOOP 011813A2:011F INT 20注:转段指令的符号地址直接用绝对偏移地址,该地址在用A命令汇编输入时,可以看到程序全部运行完之后,可用DEBUG的Dump命令查看建立的数据块内容。

例如:-D1000:00 1E2. 把上一个程序的执行结果(建立的31个字节数据块,其首地址在10000H),分几种方式传送到以下指定的区域。

(a) 该程序从内存CS:0150H开始输入。

把数据块传送到5050H开始的存贮区域中。

首先运行A150命令进入输入汇编语句状态。

然后将如下程序输入。

DEBUG下不支持符号地址,如PPEA:标号等,在命令A下输入程序时,不能输入标号(如PPEA:),在用到标号的指令(如LOOP,JNZ等),在其后直接输入要跳转的目的地址。

MOV AX, 1000MOV DS, AXMOV SI, 0MOV DI, 5050MOV CX, 1F ; 数据块长度是31PPEA:MOV AL, [SI]MOV [DI], ALINC SIINC DILOOP PPEAINT 20检查内存数据块的传送情况,可用“D”命令。

(b) 用串传送指令MOVSB,把数据块传送到5150H开始的区域,该程序从内存CS:0200H开始输入。

MOV AX, 1000MOV DS, 5150MOV CX, 1FCLDPPEB: MOVSBDEC CXJNZ PPEBINT 20检查程序最后的执行结果,可用“D”命令,例如:-D1000:5150↙(c) 用重复串操作指令“REP MOVSB”把数据块传送到5250H开始的区域。

该程序从CS:250H地址开始输入。

MOV AX, 1000MOV DS, 5250MOV CX, 1FCLDREP MOVSBINT 20检查程序的最后执行结果时,可用:-D1000: 5250H(d) 用串操作的减量工作方式,把数据块传送到501FH开始的区域。

相关文档
最新文档