文档视界 最新最全的文档下载
当前位置:文档视界 › 实验二:基础汇编语言程序设计

实验二:基础汇编语言程序设计

实验二:基础汇编语言程序设计
实验二:基础汇编语言程序设计

TEC–XP+教学计算机实验指导

TEC-XP+教学计算机的监控程序用TEC-XP+汇编语言实现,其主要功能是支持把计算机终端或PC机仿真终端接入教学机系统,通过终端设备运行教学机的有关程序,以方便直观的形式支持教学机的各项实验,提供教学机汇编语言的可用子程序。

一、PC模拟终端软件

PC模拟终端软件的功能是支持把PC机作为TEC-XP+教学计算机的终端,通过终端进入TEC-XP+的监控程序,进而可编辑、运行汇编程序。

1.进入监控程序的方法和步骤

1)打开实验箱的盖子,确认教学机电源开关处于断开状态,然后接上电源线;

2)将通讯线的9芯插头接在教学机的串口“COM1”上,另一端通过USB转换接口接到PC的USB 口,用PC作为模拟终端;

3)将教学机的运行控制开关设置为001100(连续、组合逻辑、联机、16位、MACH),开关拨向上方表示“1”,拨向下方表示“0”;

4)打开电源开关,5V电源指示灯亮;

5)在PC机上运行PCEC16.EXE文件,设置所用PC机的串口为“1”,其余的设置不用改动,直接回车即可;

6)按一下教学机的“RESET”键,再按一下“START”键后监控程序开始运行,同时PC机显示以下的信息:

TEC-2000 CRT MONITOR

Version 2.0 2001.10

Computer Architectur Lab., Tsinghua University

Copyright Jason He

2.监控命令及其使用方法

监控程序提供类似PC机DOS系统下的Debug程序的功能,支持A、U、G、P、T、R、D和E共8个监控命令。

监控命令的一般格式为:[监控命令] [地址/寄存器名参数]

监控命令为单字母(大小写均可),命令名后可跟一个地址参数,或寄存器名参数。当命令名后无参数时,监控程序取默认的地址/寄存器名的参数值。TEC–XP+机从终端接收地址、指令、数值时,均用16进制数(最多4位)输入与显示,并且不能用字符h加以标志。

1)单条汇编命令A

格式:A [addr]

[addr]表示地址参数,addr为任选项(选择范围为2000H—27FFH,即RAM的空间范围)。无此参数时,系统将取默认值。

功能:完成单条指令的汇编操作,把产生的执行代码放入对应的内存单元中。命令名后的地址addr 是第一条汇编语句的执行码的主存单元地址。

若在输入汇编语句时,不给出汇编语句而直接回车,则结束A命令的运行过程。

若汇编中发现语法错误,用^指明出错位置,并要求重新给出正确语句。

注意:单条汇编功能并不很完善,不能支持语句标号,也不能使用伪指令等。遇到这些问题,需要直接使用机器码,并通过E命令将其送入相应内存单元。

2)反汇编命令U

格式:U [addr]

功能:每次从指定的(或默认的)地址反汇编15条命令,并将结果显示在终端屏幕上。反汇编完成

之后,已将该命令的默认地址修改好。接下来再键入不带参数的U命令,接着从上一次反汇编的最后一条语句之后继续反汇编。

3)执行程序命令G

格式:G [addr]

功能:从指定的(或默认的)地址连续运行一个用户程序。为了使程序执行后能返回监控程序,要求每个程序的最后一条指令应为RET指令。

4)单指令执行程序命令T和P

格式:P [addr]

T [addr]

功能:从指定地址(或PC中的当前地址)开始单条执行程序指令。通常情况下,每按一次T或P将执行一条指令。T和P命令的区别是,T总是执行单条指令,但执行P命令时,则把每一个CALL语句(即连同被调用的子程序)一次执行完成。执行后显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。由于P和T命令是通过设置断点来实现的,而在ROM区不能设置断点,故不能用它们来执行固化在ROM区中的监控程序。

5)显示/修改寄存器内容命令R

格式:R [reg]

其中reg为寄存器名R0—R15或SP(R4),PC(R5),IP(R6)。当R命令不带寄存器名时,显示全部寄存器(包括SP,PC和IP)及状态寄存器的值,并反汇编当前PC所指的一条指令。其中状态的显示格式为:“F = 8位二进制数”,其各位的值分别对应于C、Z、V、S,INTE、P2、P1、P0的值,当R命令带有寄存器名时,先显示出该寄存器的值,若修改寄存器的值则打入新值回车,否则只按回车即可。

6)显示存储器内容的命令D

格式:D [addr]

功能:从指定(或默认)地址开始显示内存120个存储字的内容。

显示的格式:最左一列4位的16进制数是本行中第一个字的地址,接下来的8列是4位的16进制的8个连续内存字的内容,最右一列是每个字节所对应的ASCⅡ字符。当其值不为可显示的ASCⅡ码值时,用“.”字符标记。

当连续使用不带addr参数的D命令时,将会从默认的地址值开始显示。

7)修改存储器内容命令E

格式:E [addr]

功能:从指定(或默认)地址逐字显示每个内存字的内容,并等待用户打入一个新的值存回该内存单元。若用户未打入新值就打了空格键,则该内存单元内容保持不变。若在打入新值后跟空格键,则内存单元内容写成新值。空格键表明要连续修改一片内存区,故接下来显示下一个单元的内容并等待修改。打回车键,则会结束E命令的执行过程,若回车前打入一个新值,相应内存单元的内容也将被修改。

二、TEC-XP+的指令系统

TEC-XP+十六位教学机定义了48条指令,其中29条基本指令已实现,19条扩展指令供在教学实验中进行扩展,即完成对这些扩展指令的设计与调试。注意:目前TEC-XP+计算机及其监控程序尚不支持扩展指令。

十六位教学机支持单字长和双字长指令。第一个指令字的高8位为操作码字段,低8位和双字指令的第二个字为地址码字段,共有三种基本格式:

十六位机根据指令长度、操作数的不同划分为6类指令。

1)单字、无操作数指令

格式:

基本指令:

PSHF ;状态标志寄存器(C、Z、V、S、P1、P0)入栈

POPF ;弹出栈顶数据送入状态标志寄存器

RET ;子程序返回

扩展指令:

CLC ;清进位标志位C(C←0)

STC ;置进位标志位C(C←1)

EI ;开中断,即置中断允许位

DI ;关中断,即清中断允许位

IRET ;中断返回

2)单字、单操作数指令

格式:

基本指令:

DEC DR ;DR←DR-1

INC DR ;DR←DR+1

SHL DR ;DR逻辑左移,最低位补0,最高位移入C

SHR DR ;DR逻辑右移,最高位补0,最低位移入C

JR offset ;无条件转移到ADDR,ADDR=(PC)+Offset

JRC offset ;当C=1时转移到ADDR,ADDR=(PC)+Offset

JRNC offset ;当C=0时转移到ADDR,ADDR=(PC)+Offset

JRZ offset ;当Z=1时转移到ADDR,ADDR=(PC)+Offset

JRNZ offset ;当Z=0时转移到ADDR,ADDR=(PC)+Offset

IN I/O port ;I/O端口输入,R0←[I/O Port]

OUT I/O port ;I/O端口输出,[I/O Port]←R0

PUSH SR ;SR入栈

POP DR ;弹出栈顶数据送入DR

扩展指令:

RCL DR ;DR与C循环左移,C移入DR最低位,DR最高位移入C RCR DR ;DR与C循环右移,C移入DR最高位,DR最低位移入C ASR DR ;DR算术右移,最高位保持不变,最低位移入C

NOT DR ;DR求反,即DR←/DR

JMPR SR ;无条件转移到SR指向的地址

CALR SR ;调用SR指向的子程序

JRS offset ;当S=1时转移到ADDR,ADDR=(PC)+Offset

JRNS offset ;当S=0时转移到ADDR,ADDR=(PC)+Offset

3)单字、双操作数指令

格式:

基本指令:

ADD DR, SR ;DR←DR+SR

SUB DR, SR ;DR←DR-SR

AND DR, SR ;DR←DR∧SR

CMP DR, SR ;DR-SR

XOR DR, SR ;DR←DR⊕SR

TEST DR, SR ;DR∧SR

OR DR, SR ;DR←DR∨SR

MVRR DR, SR ;DR ←SD LDRR DR, SR ;DR ←[SR] STRR DR, SR ;[DR]←SR 扩展指令:

ADC DR,SR ;DR ←DR+SR+C SUBB

DR,SR

;DR ←DR-SR-C

4)双字、单操作数指令 格式:

基本指令:

JMPA ADDR ;无条件转移到地址ADDR

CALA

ADDR

;调用首地址为ADDR 的子程序

5)双字、双操作数指令 格式1:

基本指令:

MVRD DR, DATA ;DR ←DATA 扩展指令:

LDRA DR, [ADDR] ;DR ←[ADDR] STRA [ADDR], SR

;[ADDR]←SR 格式2:

扩展指令:

LDRX DR, offset[SR]

;DR ←[offset+SR]

STRX

offset[DR], SR ;[offset+DR]←SR

TEC-XP+ 十六位基本指令汇总表

说明:

1)表中CZVS一栏,“*”表示该标志位在指令执行后被重置,“·”表示该标志位不受指令执行的影响。

2)运算器中有16个通用寄存器R0-R15,其中R4用作16位的堆栈指针SP,R5用作16位的程序计数器PC,其余寄存器用作通用寄存器,即有关指令中的DR,SR。

TEC-XP+ 十六位扩展指令汇总表

实验二基础汇编语言程序设计

一、实验目的

1.学习TEC-XP+十六位机监控命令的用法:

2.学习TEC-XP+十六位机的指令系统;

3.学习简单TEC—XP+十六位机汇编程序设计;

二、实验内容

1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;

2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T命令单步运行并观察程序单步执行情况;

三、实验要求

在使用该教学机之前,应先熟悉其的各个组成部分,及使用方法。

四、十六位教学机的汇编语言程序设计举例

【例1】设计一个小程序,在屏幕上输出显示字符‘6’。

A 2000 ;地址从16进制2000(内存RAM区的起始地址)开始

2000:MVRD R0,0036 ;把字符‘6’的ASCII码送入R0

2002:OUT 80 ;在屏幕上输出显示字符‘6’,80为串行接口地址

2003:RET ;每个用户程序都必须用RET指令结束

2004:;(按回车键即结束输入过程)

这就建立了一个从主存2000h地址开始的小程序。在这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符h,每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。

【例2】设计一个小程序,用次数控制在终端屏幕上输出’0’到’9’十个数字符

A 2020

2020 MVRD R2,000A ;送入输出字符个数

MVRD R0,0030 ;“0”字符的ASCII码送寄存器R0

OUT 80 ;输出保存在R0低位字节的字符

DEC R2 ;输出字符个数减1

JRZ 202E ;判10个字符输出完否,已完,则转到程序结束处

PUSH R0 ;未完,保存肋的值到堆栈中

2028 IN 81 ;查询接口状态,判字符串行输出完成否,

SHR R0

JRNC 2028 ;未完成,则循环等待

POP R0 ;已完成,准备输出下一字符并从堆栈恢复R0的值

INC R0 ;得到下一个要输出的字符

JR 2024 ;转去输出字符

202E RET

这个程序只使用基本汇编语句。理解中的一个难点,是程序当中判串行口是否完成一个字符的输出过程并循环等待的三个汇编语句。具体解释见有关串行接口讲解部分的内容。

该程序的执行码放在2020起始的连续内存区中。若送入源码的过程中有错,系统会进行提示,等待重新打入正确汇编语句。在输入过程中,在应打入语句的位置直接打回车则结束输入过程。

接下来可用G 2020命令运行该程序。

思考题:若要求在终端屏幕上输出‘A’到‘Z’共26个英文字母,应如何修改例1中给出的程序?请验证之。

【例3】从键盘上连续打入多个属于’0’到’9’的数字符并在屏幕上显示,遇非数字符结束输入过程。

A 2040

2040 MVRD R2,0030 ;用于判数字符的下界值

MVRD R3,003A ;用于判数字符的上界值

2044 IN 81 ;判键盘上是否按了一个键,

SHR R0 ;即串行口是否有了输入的字符

SHR R0

JRNC 2044 ;没有输入则循环测试

IN 80 ;输入字符到R0

MVRD R1,00FF

AND R0,R1 ;清零R0的高位字节内容

CMP R0,R2 ;判输入字符≥字符’0’否

JRNC 2053 ;为否,则转到程序结束处

CMP R0,R3 ;判输入字符≤字符’g’否

JRC 2053 ;为否,则转到程序结束处

OUT 80 ;输出刚输入的数字符

JMPA 2044 ;转去程序前边2044处等待输入下一个字符

2053 RET

思考题:本程序中为何不必判断串行口输出完成否?设计打入‘A’~‘Z’和‘0’~‘9’的程序,遇其它字符结束输入过程。

【例4】计算1到10的累加和。

A 2060

2060 MVRD R1,0000 ;置累加和的初值为0

MVRD R2,000A ;最大的加数

MVRD R3,0000

2066 INC R3 ;得到下一个参加累加的数

ADD R1,R3 ;累加计算

CMP R3,R2 ;判是否累加完

JRNZ 2066 ;未完,开始下一轮累加

RET

运行过后,可以用R命令看R1中的累加结果。

【例5】设计一个有读写内存和子程序调用指令的程序,功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。

E 20FO(送入将被显示的6个字符‘A’~‘F’到内存20F0开始的存储区域中)

0041 0042 0043 0044 0045 0046

A 2080

2080 MVRD R3,0006 ;指定被读数据的个数

MVRD R2,20F0 ;指定被读,写数据内存区首地址

2084 LDRR R0,[R2] ;读内存中的一个字符到R0寄存器

CALA 2100 ;调用于程序,完成显示。转换并写回的功能

DEC R3 ;检查输出的字符个数

JRZ 208B ;完成输出则结束程序的执行过程

INC R2 ;未完成,修改内存地址

JR 2084 ;转移到程序的2086处,循环执行规定的处理

208B RET

A 2100 ;输入用到的于程序到内存2100开始的存储区

2100 OUT 80 ;输出保存在R0寄存器中的字符

MVRD R1,0020

ADD R0,R1 ;将保存在R0中的大写字母转换为小写字母

STRR [R2],R0 ;写R0中的字符到内存,地址同LOD所用的地址

2105 IN 81 ;测试串行接口是否完成输出过程

SHR R0

JRNC 2105 ;未完成输出过程则循环测试

RET ;结束子程序执行过程,返回主程序

运行过程中,可以直接看到屏幕上显示的内容,运行过后,再用D 20F0命令看内存的20F0区域中保存的运行结果:

0061 0062 0063 0064 0065 0066

上述5个例子,都是用监控程序的A命令完成输入源汇编程序的。在涉及到汇编语句标号的地方,不能用符号表示,只能在指令中使用绝对地址.使用内存中的数据,也由程序员给出数据在内存中的绝对地址。显而易见,对这样的极短小程序矛盾并不突出,但对很大的程序,一定会有较大的困难。

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

汇编语言程序设计实验教程

汇编语言程序设计实验教程

目录 第一章上机过程 (4) 1.1编辑源程序 (4) 1.2 汇编源程序 (5) 1.3连接目标程序 (6) 1.4运行程序 (7) 第二章DEBUG命令祥解 (8) 2.1 DEBUG程序使用 (8) 2.2 DEBUG的常用命令 (8) 第三章汇编语言程序设计实验 (13) 3.1实验一顺序与分支程序设计 (13) 3.2 实验二循环与子程序程序设计 (15) 3.3 实验三算术运算与代码转换程序设计 (16) 3.4 实验四字符串的匹配与替换程序设计 (18) 3.5 实验五输入输出程序设计 (19) 第四章部分实验参考答案 (21)

第一章上机过程 1.1编辑源程序 汇编语言源程序:用汇编语句编写的解决应用问题的程序。 汇编程序:将汇编语言源程序翻译成机器语言程序的系统。 汇编:将汇编语言程序翻译成机器语言程序的过程。 在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。 (1)编辑软件 编辑软件:EDIT、QE、WORD、NOTEPAD等。 当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。 (2)汇编程序 有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。 (3)连接程序 用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的目标代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。 (4)辅助工具程序(.EXE) 进行汇编语言程序调试和文件格式转换的程序有: https://www.docsj.com/doc/c518095123.html, 动态调试程序 EXE2BIN.EXE文件格式转换程序

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著) 《计算机操作系统原理》 《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。 《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时) 《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华) 《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本 建议:你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书 关于编程的网站 计算机编程 郭新明-FTP服务器体验式学习课程(张孝祥监制) https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=3997 https://www.docsj.com/doc/c518095123.html,快速开发新闻系统在线播放 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=4708 数字电路基础[宁波电大] https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=774 计算机组成与汇编语言程序设计(赵丽梅)宁波电大 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=1242 操作系统(陈访荣)宁波电大(在线播放) https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=4708 计算机网络(马敏飞)宁波电大 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=1243 https://www.docsj.com/doc/c518095123.html, 2.0快速入门(12)-https://www.docsj.com/doc/c518095123.html, 2.0网站快速导航 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=2501 Internet和Intranet应用(薛昭旺)宁波电大 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=1245 2004年电脑硬件安装调试维修视频教学讲授 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=4825 https://www.docsj.com/doc/c518095123.html, 高级排错技巧 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=768 SQL Server 2000管理专家系列课程 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=4832 开心三人行系列(2):使用Atlas 构建AJAX应用 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=2564 Visual Basic 2005开发技巧系列课程(4): 在Visual Basic 2005中使用.NET Framework 2.0新增功能 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=2526 SQL Server 2005 系列课程-使用ADO https://www.docsj.com/doc/c518095123.html,开发SQL Server 2005 OLAP应用 https://www.docsj.com/doc/c518095123.html,/so/so138.aspx?id=2535

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

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

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 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 + 第1页

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

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

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

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

图5 移动次数显示5.0 程序运行结果

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.docsj.com/doc/c518095123.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

第四章MCS-51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)解析

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社) (沈美明,温冬蝉著) 第二章 1.解答:有256个 2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元 E5 1E 3C 2A 3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH 30021H字单元内容: AB34H 30022H字单元内容: CDABH 4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址 5.解答: CS+IP 第一个字的物理地址为: 0AAA40H 6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,0 7.下列操作可使用那些寄存器? (1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等(2)循环计数 CX (3)乘法和除法DX,AX,AH,AL (4)保存段地址CS ,DS,ES,SS (5)表示运算结果为O FLAGS (6)将要执行的指令地址IP (7) 将要从堆栈取出数据的地址BP,SP,SS 8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP 9.一一对应; 5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O 第三章 1.(1)立即寻址没有 (2)直接寻址7237H (3)使用BX的寄存器寻址没有 (4)使用BX的间接寻址 637DH (5)使用BX的寄存器相对寻址0D5B4H (6)基址变址寻址8E18H (7)相对基址变址004FH 2.根据下列要求,写出相应的汇编指令。 (1)ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD [BX][0B2H], CX (4) MOV AX,2A59H ADD [0524H] ,AX (5) ADD AL ,0B5H

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

新版汇编语言程序设计习题答案(钱晓捷主编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

【精品】汇编语言程序设计习题答案

钱晓捷新版汇编语言程序设计习题答案 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1。2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1。4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1。6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000

(5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)—127 (3)127 (4)—57 (5)126 (6)-126 (7)—128 (8)68 1。9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001(3)1011×1001(4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕10011001(6)1011 ∨1001(7) 1。10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII 码为0dh、0ah对应的是什么字符? 1。11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1。12、简述Intel80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM—BIOS? 1。14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2013 -- 2014 年度第1 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 陈国富 班级 Z 计算机111 学 号 1160704102 指导教师 王志宏 完成日期 20140101

作者:陈国富实现加减乘除四则运算的计算器 目录 1概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2实现方法 (1) 2.1 实现的目标 (1) 2.2 主体的功能 (1) 2.3 开发的环境 (1) 3 设计方法概要 (2) 3.1功能模块划分 (2) 3.2流程图 (3) 4详细设计 (3) 5程序调试 (4) 5.1 调试方案 (4) 5.2 调试结果 (4) 6结论 (5) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 1.2 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2实现方法 2.1 实现的目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 2.2 主体的功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 2.3 开发的环境 TASM5.0集成环境 1

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

第一部分汇编语言程序设计 实验一熟悉、使用DEBUG调试工具 一.上机目的: 1.了解并逐步熟悉汇编语言的编辑方法及特点. 2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。 3.掌握汇编语言的编辑、汇编及连接的过程。 4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。 二.实验内容: 1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。 3.运用LINK.EXE文件进行连接,形成*.EXE文件。 4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。 5.运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。 程序清单: 多字节非压缩型BCD数除法(88754/6=14792) DA TA SEGMENT A D B 8,8,7,5,4 B DB 6 C DB 5DUP (0) N EQU 5 DA TA ENDS CODE SEGMENT ASSUME CS:CODE;DS:DATA;ES:DATA, START MOV AX,DA TA MOV DS,AX MOV ES,AX CLD LEA SI,A LEB DI,C MOV CX,N MOV AH,0 LP1:LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C

相关文档
相关文档 最新文档