当前位置:文档之家› 编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)

编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)

编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)
编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)

在"开始"找到运行单击

在运行中输入CMD

输入CD空格\(反斜杠),(进入C盘根目录)

输入F:(进入F盘)

输入CD空格MASM(进入MASM文件夹)

输入MASM空格0817.ASM(检查0817.ASM有无错误并生成.OBJ文件),直到没错

输入LINK空格0817.OBJ(进行连接)

输入0817.EXE运行

汇编语言应用程序的开发

一.汇编语言应用程序的开发过程

开发一个可独立运行的汇编语言程序,主要包括以下基本步骤:

1.用文本编辑软件编辑汇编语言源程序模块(SOURCE MODULES)。一个完整的汇编语言源程序,可以是单模块结构格式,也可以是多模块结构格式。无论采用哪一种结构格式,每一个模块都必须是一个可独立汇编的源程序文件(扩展名为.ASM)。常用的文本编辑软件如EDIT,QEDIT,PE,或由其他高级语言(如TC,VC等)提供的编辑环境,都可以用来编辑汇编语言源程序。

2.调用宏汇编程序MASM对源程序的每一个模块进行汇编(包括对宏的处理),生成目标文件.OBJ。在汇编过程中,MASM将对源程序模块进行语法检查,若有语法错误,则在汇编结束时,将错误信息显示出来。这时程序设计者就得返回第二步,再调用编辑程序,并根据提示信息,对有语法错误的语句进行修改,然后再重新进行汇编,直到MASM未发现语法错误为止。在汇编过程中,出了对每一个源程序模块文件都要生成对应的目标文件.OBJ外,还可以选择生成列表文件.LST和交叉引用文件.CRF,以提供调试时使用。在汇编时产生的错误,通常称为语法错误。注意:在汇编过程中不能发现程序的逻辑功能错误。

3.调试连接程序LINK,对一个或多个目标文件.OBJ进行连接,生成一个可执行文件.EXE。这里所说的目标文件,有的可能是在汇编时产生的,有的可能是由某个库文件.LIB 提供的。在连接过程中,还可以选择生成内存映像文件.MAP,以供在调试程序时使用。

在连接过程中,如果发现有错误,也会将错误信息显示在屏幕上。那么,程序设计者还得根据错误信息,返回第一步或第二步进行修改,直到正确连接,生成可执行文件.EXE 为止。

4.使用调试程序如DEBUG或程序调试工具软件提供的调试环境,对可执行文件.EXE 进行调试和试运行,以便发现程序中是否有逻辑功能错误。如果有错误,则表明程序的逻辑功能不正确,不能满足设计要求。这时,必须返回到第一步,修改源程序中的逻辑错误,再

重新进行汇编,连接和调试运行,直到来满足要求为止。常用的调试程序有DEBUG,CODEVIEW等

汇编语言程序的开发过程如下图所示:

二.编缉

汇编语言源程序模块是一个包含汇编指令、伪指令和注释的文本文件。在用文本编辑软件编写源程序时,应注意以下几点:

1.源程序文件名的扩展名必须为﹒ASM。

2.按照源程序的结构格式,对数据段﹑堆栈段和代码段进行分段编排。

3.源程序的每一条语句占一行。对语句行中的标号或符号名字段,指令助记符号或伪指令字段,操作数字段和注释字段,应分别对齐写,最后一回车结束。

4.为了提高程序的可读性和可维护性,在给标识符号命令时应注意其意义;在那些完成一定功能的程序段,指令序列或关键指令处,加上简明的注释。

例1.下面是一个示例程序清单,程序采用查表的方法,求HEX单元中的十六进制的ASCII码,并将其存放在ASCI单元中。

; Program: EXANPLE.ASM

; Function: Comert One HEX Data to ASCII And Save it in ASCI

; Update Date: 2002-07-01

DA TE SEGMENT ‘DATA’

TABLE DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H

DB 38H, 39H, 41H, 42H, 43H, 44H, 45H, 46H

HEX DB 5

ASCI DB ?

DA TA ENDS

STACK1 SEGMENT PARA STACK ‘STACK’

DW 20H DUP(0)

STACK1 ENDS

CODE SEGMENT CODE

ASSUME CS:CODE, DS:DATA, SS:STACK1

MAIN: MOV AX, DATA ;INIT DS

MOV DS, AX

MOV BX, OFFSET TABLE ;Get the ASCII Addr. Of HEX

XOR AX, AX

MOV AL, HEX

ADD BX, AX

MOV AL, [BX] ;Get HEX’Sascii &Seve it to ASCI

MOV ASCI, AL

MOV AH, 4CH ; Return to DOS

INT 21H

CODE ENDS

END MAIN

-

汇编

由Microsoft公司推出的宏汇编MASM (MACRO Assembler)系列软件能将8086/8088、80286、80386、80486、Pentium (包括协处理器8087、80287、80387)的汇编语言源程序汇编成可重定位(Relocatable)的机器语言目标代码文件(又称为目标文件或目标代码)。

下面将介绍MASM的使用、汇编信息(MASM Messages)、列表文件.LST的阅读和交叉引用文件.REF的生成。假定在C:\MASM>目录下,存放了汇编中所需的全部程序。

MASM的操作

在DOS状态下,通常有两种调用MASM对汇编语言源程序进行汇编的方法:一种是提示应答(Prompts)方式,另一种是命令行(Command Line)方式。无论使用哪一种方法,都可按Control+C或Control+Break键,随时终止汇编过程。

下面,以示例程序EXAMPLE.ASM为例,介绍AMSM的使用方法。

1.提示应答方式

在C:\MASM>提示状态下,运行MASM,即键入命令:

C:\MASM>MASM

在显示版权信息后,接着显示一个提示信息项。按照提示信息,键入相应的文件名,并按回车键。然后,又显示下一个提示信息。通常,在回答各提示项时,不必给出文件扩展名。若默认系统给定的选择,则只需按回车键。比如:

Microsoft ? Macro Assembler Version 5.00

Copyright ? Microsoft Corp. 1981-1985,1987,All rights reserved

Source filename [.ASM]:EXAMPLE↙——键入源程序文件名,按回车

Object filename [EXAMPLE.obj]: ↙——按回车,确认生成的目标文件名

Source listing [NUL.LST]↙:——按回车,确认不生成列表文件

Cross-reference [NUL.CRF]:↙——按回车,确认不生成交叉引用文件

在上面的应答中,我们选用了默认的目标文件、列表文件和交叉引用文件。注意,列表文件和交叉引用文件的默认文件名都为NUL,表示不生成相应的文件。如果用户需要生成列表文件和交叉引用文件,则应键入相应的文件名。比如,在列表文件和交叉引用文件提示项处,

都键入EXAMPLE,则会生成列表文件EXAMPLE.LST和交叉引用文件EXAMPLE.CRF。

在结束上述提示应答之后,MASM便对源程序进行扫描和语法检查。在没有严重语法错误的情况下,生成.obj文件。若有语法错误,则显示错误信息。

要特别说明的是,在应答中可以使用分号(;)。这时,表示后面的所有提示行都确认默认选择,并且不再显示。例如:

Source filename[.ASM]:EXAMPLE;

与上面的应答具有相同的功能,即汇编EXAMPLE.ASM,仅生成EXAMPLE.OBJ文件。

2.命令行方式

命令行方式是指在DOS状态下,将执行宏汇编MASM程序时所需的所有文件名按照指定的格式,写在一行(称为命令行)中,常用的命令行格式为:

MASM (Sourcefile)[,[OBJfile][,[LSTfile][,[CRFfile]]]] [;]

在命令行中,对文件名的要求,与提示应答方式中对文件名的要求相同。文件名的顺序应严格与命令格式中指定的顺序一致。相邻的文件名间用逗号隔开,如果希望生成的目标文件、列表文件或交叉引用文件与源程序文件同名(扩展名不同),可以不给出文件名,而只需保留在命令中对应文件名位置处的逗号。如果在指定某文件名后,直接键入分号“;”,则表明命令结束,其后都选定默认文件名。例如命令行:

C:\MASM\>MASM EXAMPLE,,EXAMPLE,EXAMPLE

表示对源程序EXAMPLE.ASM进行汇编,遵照默认约定生成目表文件EXAMPLE.OBJ,同时按照给定的.LST和.CRF文件名,生成相应的EXAMPLE.LST和EXAMPLE.CRF文件。显然,下面的命令与它具有同样的功能。

C:\MASM\>MASM EXAMPLE….

命令:

C:\MASM\>MASM EXAMPLE…;

将生成EXAMPLE.OBJ和EXAMPLE.LST文件,而不生成EXAMPLE.CRF文件。

有关MASM 5.00的更详细的使用,请参阅宏汇编5.00编程指南。

汇编状态信息和错误代码

MASM在汇编过程中,结合汇编情况,在屏幕上将显示出相关的状态信息和错误代码,以供用户参考。

1.汇编状态信息(Assembler Status Messages)

在汇编后,MASM将显示符号空间、错误及警告等信息。比如,显示如下信息:

Microsoft ? Macro Assembler Version 5.00

Copyright ? Microsoft Corp. 1981,1987,All right reserved

47904+353887 Bytes symbol space free

0 Warning Errors

0 Severe Errors

上述信息中,第三行有两个由“+”连接的数据,第一个数值表示剩余的NEAR符号空间字节数,第二个数值表示剩余的FAR符号空间字节数,这两个数值告诉了用户,汇编时内存空间的使用情况。如果继续增加源程序,将会占用余下的可用内存空间。分配给NEAR符号空间共64KB。

最后两行是汇编源程序时产生的警告错误(Warning Error)和严重错误(Severe Error)的个数,其中这两个错误个数均为零,表示汇编中未发现任何语法错误,汇编成功。

2.错误信息(Error Messages)

如果在对源程序的汇编过程中发现有错误,MASM将按一定的格式将它们显示出来,而对于那些可置疑的(Questionable)语法错误,则以警告信息(Warning Message)的方式显示。错误可以分为两类:一类是它的产生与某一语句行有关,系统对这类错误信息都赋予一个编号,称为带有编号的错误信息(Numbered Error Messages),另一类错误是全局性的,而不是针对某一语句行的。这类错误未赋予编号,称为不带编号的错误信息(Unnumbered Error Messages)。

带有编号的错误信息按以下格式显示:

Sourcefile(Line):Code Message

其中,Sourcefile是被汇编的源程序文件名;Line是有错误而无法汇编的语句行号。Code是由Error或Warning及紧接着的一个字符和四个数字组成,其中,第一个是字符,它表明源程序语言的类别,如A表示是汇编语言程序,第二个是数字,它表示警告级别(Warning Level)。2表示该错误为严重错误(Sever Error),4表示严重警告(Serious Warning),5表示建议性警告(Advisory Warning)。最后的三个数字表示错误编号。如A2038则解释为汇编语言源程序的第38号严重错误。严重警告和建议性警告错误属于一般性错误。当出现严重错误时,将不会生成目标文件。

Message是对该错误的简要描述

利用上述信息,便可知道源程序的第几行有错误,以及该错误的简要解释,根据这些信息,就容易对错误进行修改。对于那些未给出编号的错误,要确定出错位置,有的难度要大些。

有关错误信息及其解释,请参阅附录五。

为了使大家熟悉汇编中的显示信息,在示例13.2.1中制造了两个错误,汇编时要求生成.LST 和.CRF文件,用命令:

C:\MASM>MASM EXMPLE….

显示信息:

Microseft ? Macro Assembler Version 5.00

Copyright ? Microsoft Corp. 1981,1987, All right reserved

example. ASM(11): warning A4001: Extra characters on line

example.ASM(14): error A2009: Symbol not defined: TAB1E

50646+351354 Bytes symbol space free

1Warning Errors

1Severe Errors

由显示信息可知,程序中有两个错误:一个是第11行语句中有一个多余的字符,另一个是第14行语句中有未定义的符号TAB1E。

目标文件及列表文件示例说明

1.目标文件.OBJ

每一个没有语法错误的源程序模块.ASM。在经过汇编后,都会生成一个目标文件.OBJ,它是一个可重定位的二进制代码文件。

2.列表文件.LST

列表文件是一个有助于程序调试的文本文件,可以用任意一个通用的文本编辑软件来显示列表文件的内容。下面是例13.2.1的列表文件

EXAM1PLE.LST

Microsoft ? Macro Assembler Version 5.00 8/10/98/11:29:46

Page 1-1

1 0000 DATASEGMENT

2 0000 30 31 32 3

3 3

4 3

5 3

6 TABLE DB

30H,31H,32H,33H,34H,35H,36H,37H

3 37

4 0008 38 39 41 42 43 44 4

5 DB

38H,39H,41H,42H,43H,44H,45H,46H

546

6 0010 05 HEX DB 5

7 0011 ?? ASCI DB ?

8 0012 DATA ENDS

9 0000 STACK1 SEGMENT PARA STACK

10 0000 0020[ DW 20H DUP(0)

110000

]

13

14 0040 STACK1 ENDS

15 0000 CODE SEGMENT

16 ASSUME CS:CODE DS:DATA,SS:STACK1 example.ASM(11): warning A4001: Extra characters on line

17 0000 B8----R MAIN:MOV AX,DATA ;INIT DS

18 0003 83 D8 MOV DS,AX

19 0005 BB 0000 U MOV BX,OFFSET TAB1E ;Get ASCII

Addr. Of HEX

example. ASM(14): error A2009: Symbol not defined: TAB1E

20 0008 33 C0 XOR AX,AX

21 000A A0 0010 R MOV AL,HEX

22 000D 03 D8 ADD BX.AX

23 000F 8A 07 MOV AL,[BX] ;Get HEX’s ASCII

24 0011 A2 0011 R MOV ASCI,AL

25;Return to DOS

26 0014 B4 4C MOV AH,4CH

27 0016 CD 21 INT 21H

28 0018 CODE ENDS

29 END MALN

Microsoft ? Macro Assembler Version 5.00 8/10/98 11:29:46

Symbols-1

Segments and Groups:

Name Lengeh Align Combine Class

CODE ........................................0018 PARA NONE

DATA .........................................0012 PARA NONE

STACK .......................................0040 PARA STACK

Symbols:

Name Type Value Attr

ASCI ............................................L BYTE 0011 DATA

HEX .............................................L BYTE 0010 DATA

MAIN ...........................................L NEAR 0000 CODE

TABLE ..........................................L BYTE 0000 DATA

@FILENAME ........................... TEXT example

24 Source lines

24 total lines

9 Symbols

50646+351354 Bytes symbol space free

1 Warning Errors

1 Severe Errors

一般.LST文件内容可分为三个部分;第一部分是汇编程序代码列表(Code Listing),第二部分是符号表(TABLE),第三部分是汇编统计(Assembly Statistics)信息。

(1)程序代码列表

程序代码列表是由源程序语句产生的,其格式为:

[linenumber] offset [code] statement

它由行号[linenumber](只有在生成交叉引用文件时才产生)、目标代码的偏移量offset、目标代码[code]、源程序语句statement组成。其中,offset和code是用十六进制数表示的。对于宏调用语句,则是该语句扩展后的语句序列。最后,还列出了源程序中的注释。如果某语句有错,那么错误编号及错误信息将显示在这条语句的下一行。

在程序代码列表中,使用了一些符号和缩写字母来表示需要由连接程序确定的地址、或者由特殊方式产生的值,这些符号和缩写字母的含义如表13-1所示。

表13-1 .LST文件中定义的字符和缩写

(2)符号表

符号表中包括了程序中定义的SYMBOLS、MACRO、STRUCTURE、RECORD、SEGMENT/GROUP等各个列表。表中包含了它们的名字(Name)、长度大小(Size)、属性(Attribute)、类型(Type)和值(Value)等项目。

(3)汇编统计信息

汇编统计信息包括汇编的行数、处理的符号数、错误和警告等统计数据。

3.交叉引用文件.CRF

交叉引用文件是一种二进制文件。用CREF软件可将它转换成易于阅读的扩展名为.REF的文本文件。在每一个符号名后,用数字表示出了它在源程序中定义的行号(附有符号#)和引用的行号。

CRFF软件的使用比较简单。它有两种使用方式:一种是提示应答方式,另一种是命令行方式。比如由EXAMPLE.CRF生成EXAMPLE.REF的命令:

C:\MASM>CREF EXAMPLE;

在调度程序时,我们可以充分利用列表文件和交叉引用列表提供的信息进行调度。

微机原理与汇编语言程序设计汇编实验报告

(此文档为word格式,下载后您可任意编辑修改!) 昆明学院课程设计(大作业)

目录 1题目分析 (5) 2基本理论 (5) 3 总体设计 (6) 3.1 本程序的功能结构图 (6) 3.2字符输入及存储设计 (8) 3.3加、减、乘、除法运算的判断设计 (8) 3.4加、减、乘、除法运算的设计 (9) 4实验器材 (10) 5方法步骤 (11) 6成效分析 (11) 6.1运行界面分析 (11) 6.2调试过程及分析 (13) 7心得体会 (14) 8参考文献 (14) 9附录 (14) 课程设计(大作业)报告 一、题目分析 本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算 的问题。重点和难点主要包括以下几个方面: (1)利用BIOS调用中INT 16H调用中的子程序完成清屏、设置显示方式、设置窗口等操作。

(2)利用INT 21H DOS系统功能调用中的键盘输入接收十进制操作数和运算符由程序完成字符转换为二进制数,并存储起来。 (3)根据运算符完成运算,由程序在屏幕上显示运算结果。 1、十进制数转换为二进制数过程如下: (1)将BX清0. (2)从键盘接收一个按键的ASCII送AL中,并判断是否为0到9之间的字符,若不是转退出;否则将AL中内容减30H,转换为相应数字的二 进制数,并扩展到AX中,然后将BX中内容乘以10后,再加上AX中 的内容。 (3)转(2)继续执行 因此程序退出后,BX中的内容即为所输入十进制数的二进制值。 例如:首先将BX清0后,先输入数字“5”,则(AL)=35H,属于0 到9之间的数字,减30H后,(AL)=05H,扩展后,(AX)=0005H,BX 乘以10后,加上AX中的内容,(BX)=0005H。 然后输入数字“8”,则(AL)=38H,属于0到9 之间的数字,减30H 后,(AL)=38H,扩展后,(AX)=0008H,(BX)乘以10后,加上AX 中的内容,(BX)=0037H,为十进制数“58”的二进制值。 十进制数显示过程如下(被显示的数据<9999): (1)将被显示的内容送入BX中; (2)BX除以1000,余数送BX,商在AL中,范围为0~9; (3)显示AL中的内容; (4)(BX)除以100,余数送BX,商在AL中,范围为0~9; (5)显示AL中的内容。以此类推,直到分离出个位数字为止。 在这里有一个特殊问题需要讨论:例如“53”这个十进制数,除以1000除以100的商都为0,不应显示。为了能够实现高位的“0”不显示,程序中设置一个标志M,初始值都设置为1。若M=1且商为0,则这个0不现实;若M=1且商不为0,则说明这是第一个非0数字,开始显示,并将M设置为0;若M=0,则商值都显示。如果结果本身就是0,则个位的0显示。 二、基本理论 本次汇编语言课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运

微机原理与汇编语言复习题及参考答案

微机原理与汇编语言复习题及参考答案 ——CSDN下载频道提供,请尊重原创 一、选择题: 1. 设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为() A. 51H B. A3H C. 47H D. 0C5H 2. 下述指令的执行结果是() MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3. 完成对CL寄存器的容乘以4的正确操作是() A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL CL,CL 4. 无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指() A. ADD BH,01H B. OR BH,01H C. XOR BH,01H D. TEST BH,01H 5. 假设(AL)= 37H,(BL)= 95H,执行指令IMUL BL后(AX)= () A. 0E903H B. 2003H C. 0DBBH D. 2008H 6. 下面的数据传送指令中,错误的操作是() A. MOV SS:[BX+DI],1000H B. MOV DX,1000H C. MOV WORD PTR[BX],1000H D. MOV DS,2000H 7. CPU要访问的某一存储单元的实际地址称() A.段地址B.偏移地址C.物理地址D.逻辑地址 8. 某存储单元的物理地址是12345H,可以作为它的段地址有() A.2345H B.12345H C.12340H D.1234H 9. 计算机能直接识别的的语言() A.汇编语言 B.机器语言C.高级语言D.低级语言 10. 下列指令中操作数在代码段中的是() A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为()A.直接、立即、间接B.直接、间接、立即 C.立即、直接、间接D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALL AX后,栈顶的物理地址是()A.2010211 B.2010111 C.200FFH D.200FEH 13.当执行完下列指令序列后,标志位CF和OF的值是() MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14. JMP BX的目标地址偏移量是(D)。 A.SI的容B.SI所指向的存字单元之容 C.IP+SI的容D.IP+[SI] 15.指令MOV AX,10[BX]的源操作数的寻址方式是() A.基址寻址B.寄存器寻址MOV AX,BX C.变址寻址AX【BX+DI】(只能用BX,BP;SI和DI) D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的。()

微机原理与汇编语言复习题及参考答案

、选择题 : 1. 2. 3. 中南大学现代远程教育课程考试复习题及参考 答案 微型机原理与汇编语言 设AL=0A8H CX=2 CF=1,执行RCL AL , CL 指令后,AL 中的值为 A. 51H B. A3H C. 47H D. 0C5H 下述指令的执行结果是 MOV AL , 0C2H AND AL , 0F0H A.AL=40H B.AL=20H 完成对CL 寄存器的内容乘以 A.ROL CL , 1 B.MUL 4 ROL CL , 1 C.AL=0C0H D.AL=0E0H 4 的正确操作是 C.SHL CL SHL CL ,2 ,CL ,1 D.MOV CL ,1 SHL CL BH 中的数一定为奇数,应执行的指 C. XOR BH ,01H D. TEST 无论BH 中原有的数是奇数或偶数,若要使 A. ADD BH , 01H B. OR BH , 01H 假设(AL )= 37H ,( BL )= 95H ,执行指令 IMUL BL 后(AX )= A. 0E903H B. 2003H 下面的数据传送指令中,错误的操作是 A. MOV SS:[BX+DI] , 1000H C. MOV WORD PTR[BX], 1000H 7. CPU 要访问的某一存储单元的实际地址称 4. 5. 6. C. 0DBBH D. 2008H B. MOV DX D. MOV DS ,1000H ,2000H A .段地址 B.偏移地址 C.物理地址 8. 某存储单元的物理地址是 12345H,可以作为它的段地址有 A . 2345H B . 12345H C . 9. 计算机能直接识别的的语言 A .汇编语言 B .机器语言 10. 下列指令中操作数在代码段中的是 A . MOV AL,25H B . ADD AH,BL C . D.逻辑地址 12340H D . 1234H C.咼级语言 D.低级语言 INC DS:[25] D . CMP AL,BL 11. 直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为 A .直接、立即、间接 C.立即、直接、间接 12. 若栈顶的物理地址是 A . 2010211 B B .直接、间接、立即 D .不一定 2010011, 当执行完指 令 CALL AX 后, . 2010111 13. 当执行完下列指令序列后,标志位 MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A . 0, 0 B . 0, 1 14. JMP BX 的目标地址偏移量是() A . SI 的内容 B . SI C . 200FFH CF 和 OF 的值是 . 1, 0 D O 所指向的内存字单元之内容 C . IP+SI 的内容 D . IP+[SI] 15. 指令MOV AX,10[BX]的源操作数的寻址方式是 A .基址寻址 B .寄存器寻址 C.变址寻址 D .寄存器相对寻址 16. 指出下列哪个数据在汇编语言中是非法的。 A . 19BH+25D B . 25+AL C . 108-102Q D . 101B*OABH 17. 用来存放即将执行的指令的偏移地址的寄存器是 A . SP B . IP C . BP BH , ( 01H 栈顶的物理地址是( D . 200FEH ( . CS

华电微机原理与技术汇编语言题目及答案

微机原理与接口技术汇编题目 2、将数据段DATA1中的10个字数据(16位数)传送到数据段DATA2中。提示: 0000H) 1、指定数据的起始地址:(如果不指定起始地址,则起始地址为 DATA SEGMENT ORG 2000H DB 1,,2,3,4,5,6,7, 8,9,10 ; DB 定义字节数据 ORG 3000H DB 10 DUP(O);预留10个单元存放结果,初值预定义为0 DATA ENDS

2、定义字数据命令为:DW DATA1 SEGMENT DW 1, ,2, 3, 4, 5, 6, 7, 8, 9, 10 ; DW 定义字数据DATA1 ENDS 一个字为两个字节,在存中低位在前,高位在后。

1已知0~15的平方值表,查表求X (X是0到15间任一数)的平方值,送到Y单元,用两种方法。 2、已知0~255的平方值表,查表求X的平方值,送到Y单元。 提示: 0到15的平方表,每个平方值为一个字节; 0到255的平方表,每个平方值为2个字节;调试程序,平方表中的数据定义几个就行,目的是程序正确即可。 一个字为两个字节,在存中低位在前,高位在后。

1 计算多字节数据1122334455667788H 与99AABBCCDDEEFF00H 的和。 2、计算8字节的BCD 码十进制数1122334455667788H 与9988776655443322H 的和 3、计算10个字数据的和(数据自己定义)。 提示; 1、多字节数据在存中存放,低位在前,高位在后 DAT1 DB 88H,77H,66H,55H,44H,33H,22H,11H DAT2 DB 00H,0FFH,0EEH,0DDH,0CCH,0BBH,0AAH,99H 二进制加法指令:ADD BCD十进制加法:ADD DAA;十进制调整指令,仅对AL作为加法的累加和寄存器进行调整

微机原理及应用实验(题目)

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。二、实验内容 在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的 30H~7FH 单元清零。 三、实验设备 PC机一台。 四、实验步骤 用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。五、实验思考 1.如果需把30H-7FH 的内容改为55H,如何修改程序? 2.如何把128B的用户RAM全部清零? 六、程序清单 文件名称:CLEAR.ASM ORG 0000H CLEAR: MOV R0,#30H ;30H 送R0寄存器 MOV R6,#50H ;50H 送R6寄存器(用作计数器) CLR1: MOV A,#00H ;00 送累加器A MOV @R0,A ;00 送到30H-7FH 单元 INC R0 ;R0 加1 DJNZ R6,CLR1 ;不到50H个字节,继续 WAIT: LJMP WAIT END 实验二数据传送 一、实验目的 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、实验设备 PC机一台。

微机原理与汇编期末复习重点

单选、填空(单选10个,20分;填空10个,20分) 1、8086通用寄存器?P23 通用寄存器又称数据寄存器,主要用来保存算术或逻辑运算的操作数、中间运算结果。当用作16位时,称为:AX、BX、CX、DX;当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,并可独立寻址。 2、8086地址线、寻址范围?P37 8086系统有20根地址线。可供寻址范围0~220 -1,其存储器的最大容量为1MB,对应的地址范围:00000H~FFFFFH。 3、总线的分类?P39 按总线内部信息传输的性质分类:数据总线(DB)、地址总线(AB)、控制总线(CB)和电源总线(PB)。 按总线在系统结构中的层次位置分类:片内总线、内部总线、外部总线 按总线的数据传输方式分类:串行总线、并行总线 按总线的传输方向分类:单向总线(地址总线)、双向总线(如数据总线) 4、寻址方式?P67 8086系统中的操作数主要有3种:立即数操作数,寄存器操作数和存储器操作数。指令构成:操作码+操作数。 立即寻址方式。指令中包含操作数。如:MOV AX,12H 寄存器寻址方式。操作数存在于指令规定的8位或16位寄存器中。 如:MOV BX,AX 直接寻址方式。是存储器直接寻址方式的简称,是一种针对内存的寻址方式。指令代码中给出操作数的偏移地址,即有效地址(EA)。默认情况下,操作数存放在数据段(DS)。物理地址=16dx段地址(DS)+偏移地址(EA)。 如:①MOV AH,[3000H] ;将地址为DS:3000H存储单元中的数复制到AX寄存器中。当(DS)=5000H时,物理地址=16dx5000H+3000H=53000H,指令的执行结果(AX)=(53000H)(53001H)。②在汇编语言中,也可以用符号地址代替数值地址来表示有效地址。如:MOV AX,[A] 寄存器间接寻址方式。对内存的寻址方式。操作数的有效地址(EA)在指定的寄存器中,EA放在基址寄存器BX、BP或变址寄存器SI、DI中。 物理地址=16dx(DS)+(BX)/(DI)/(SI); 物理地址=16dx(SS)+(BP)。如:MOV AX,[BX] ;将地址为DS:BX存储单元中的数复制到AX寄存器中。 变址寻址方式。操作数的有效地址是变址寄存器(SI或DI)的内容与指令中指定的位移量的和。即有效地址EA=[变址寄存器]+位移量。 物理地址=16dx(DS)+(SI)/(DI)+ 8位(16位)位移量 例如:MOV AX,100H[SI] ;将地址为DS:SI+100H存储单元中的数复制到AX 基址寻址方式。操作数的有效地址是基址寄存器(BX或BP)的内容与指令中指定的位移量的和。 物理地址=16dx(DS)+(BX)/(BP)+ 8位(16位)位移量 例如:MOV AX,10H[BX] ;将地址为DS:BX+10H存储单元的数复制到AX寄存器基址变址寻址方式。有效地址EA=基址存储器+ 变址存储器,即两个寄存器中的内容之和为操作数的有效地址。 物理地址=16dx(DS)+ (BX)+(SI)/(DI);例如:MOV AX,[BX] [SI] 或MOV

微机原理与汇编语言教学大纲

《微机原理与汇编语言》课程教学大纲一、课程基本信息 二、教学目标和要求 本课程是计算机专业的专业主干课。课程以当今主流微处理器80X86为结合点,分析它的结构特点、操作原理、指令系统以及汇编语言设计的基本方法,为后续课程打下必要的基础。通过本课程的学习,要求学生掌握微型计算机的基本

工作原理、汇编语言程序设计基本方法、微型计算机接口技术、建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力。应能掌握计算机的基本工作原理及汇编语言编程的技能和技巧,养成良好的程序设计风格,为今后的工作打下必要的技术基础。 三、教学难点 重点是8086CPU内部结构,引腿信号及功能,指令系统;汇编语言程序设计;接口的基本技术,接口芯片的内部结构和工作原理。难点是CPU操作时序,各种接口芯片的控制字,模式字的设置及其含义,接口与外设子系统的硬件设计及软件编程。 四、教学内容及基本要求 第一章微型机算计概述 (2学时) 教学目标和要求:理解微型机的分类和发展概况;掌握微处理器、微型计算机和微型机系统的差别;掌握CPU的功能和组成部件;掌握计算机的基本结构。 教学重点和难点:无。 教学方式:(课堂讲授) 第一节微型计算机的特点和发展 一、微型计算机的特点 二、微型计算机的发展 第二节微型机的分类 一、微型计算机的分类 第三节微处理器、微型计算机和微型计算机系统 一、微处理器 二、微型计算机 三、微型计算机系统 第四节微型机算机的应用 一、微型计算机的应用 复习思考题: 1. 微处理器、微型计算机和微型计算机系统之间有什么不同?

2. 微型计算机采用总线结构有什么优点? 3. 数据总线和地址总线在结构上有什么不同之处? 第二章 16位和32位微处理器 ( 6学时 ) 教学目标和要求: 1、掌握:8086微处理器的编程结构,常用引腿信号的功能,8086的中断系统,总线操作及时序; 2、理解:80386的体系结构,三种工作方式,指令流水线和地址流水线,虚拟存储机制和片内两级存储管理;Pentium采用的先进技术,原理结构,技术发展。 教学重点和难点:8086微处理器的结构,内部寄存器的功能,主要的引脚信号及功能,中断响应过程,存储器组织和I/O组织。 教学方式:(课堂讲授6学时) 第一节 16位微处理器8086 (2学时 ) 一、8086的编程结构 总线接口部件和执行部件的组成及各自功能,8086总线周期的概念。 二、8086的引腿信号和工作模式 1. 最小模式和最大模式的概念 为了适应各种应用场合,在设计8086/8088CPU芯片时,使它们可以在两种模式下工作,及最小模式和最大模式。 2. 8086/8088的引腿信号和功能 8086/8088CPU有40条引腿,这里介绍在两种模式下公用的32条引腿和他们的传递方向及有效跳变。 3. 最小模式 讲述8086在最小模式下的典型配置及有关引腿信号。 4. 最大模式 讲述8086在最大模式下的典型配置及有关引腿信号。 三、8086的操作和时序 1. 系统复位和启动操作 8086/8088复位时各内部寄存器的值,复位时序,总线信号状态。

汇编语言与微机原理实验指导书范本

汇编语言与微机原理实验指导书

《汇编语言与微机原理》实验指导书 编写者:董建怀 编写时间: -9-10

实验一.熟悉DOS环境和DEBUG调试软件的使用 一、实验要求: 必做 二、实验类型: 验证 三、实验学时:2 四、实验地点:机房 五、实验目的: 1、.熟悉DOS环境和DEBUG调试软件的使用方法。 2、掌握DEBUG常见命令A、U、D、E、R、T、G的使用,用DEBUG调试简单程序段。 六、实验内容: (一)、熟悉DOS环境 1、MS-DOS的启动:开始—程序—附件—MS-DOS方式(命令提 示符)。 2、MS-DOS全屏方式和窗口方式的切换:“ALT”+ “ENTER”。 3、MS-DOS工具栏的打开:“ALT”+空格键。 4、MS-DOS方式下的选定、复制和粘贴:利用菜单栏下”编辑” 菜单项中的“标记”、“复制”和“粘贴”的功能来实 现。 5、MS-DOS方式的退出:EXIT。 练习:进入MS-DOS方式,并将屏幕上显示的全部内容复制

到一WORD文档中。 (二)、熟悉一些常见的DOS命令 1、更改盘符,如:C:\WINDOWS>d:并按“ENTER”,显示:D:\>(盘符更改为D:)。 2、建立子目录(文件夹)MD,如C:\>MD FOX (在当前驱动器C盘下创立子目录FOX)。 3、显示当前目录CD,如:C:\>CD WINDOWS,显示:C:\WINDOWS>(即从当前目录C:\进入到C:\WINDOWS目录)。 4、显示磁盘目录的内容DIR,如:C:\WINDOWS>,显示的内容即为当前目录C:\WINDOWS中的所有内容。 5、返回上级目录,如:C:\WINDOWS>cd ..,显示C:\>(即从当前目录C:\WINDOWS返回到它的上级目录C:\)。 练习:在MS-DOS方式下,进入C:\WINDOWS\SYSTEM目录,并显示该目录下的所有内容,然后返回C盘的根目录(C:\)。 (三)、熟悉调试程序DEBUG.EXE的应用,练习DEBUG的常见命令 实践1:利用DEBUG.EXE的A、D、U命令,观察指令MOV AH,[BX+DI+50H],对应的机器码是什么?,该指令是几个字节的指令?并对机器码进行反汇编,观察对应的指令是什么?ADD [2345H][BX][DI],DX的机器码是什么? 该指令是几个字节的指令? 并对机器码进行反汇编,观察对应的指令是什么? 实践2:在DEBUG.EXE方式下(利用A、G命令), 分析两个数

华电微机原理与技术汇编语言题目及答案

一微机原理与接口技术汇编题目 (1)数据块传送 1、将数据段中2000H单元开始存放的10个数(8位数)传送到3000H开始的10个字节中。 2、将数据段DATA1中的10个字数据(16位数)传送到数据段DATA2中。 提示: 1、指定数据的起始地址:(如果不指定起始地址,则起始地址为0000H) DATA SEGMENT ORG 2000H DB 1,,2,3,4,5,6,7,8,9,10 ; DB定义字节数据 ORG 3000H DB 10 DUP(0); 预留10个单元存放结果,初值预定义为0 DATA ENDS 定义的存单元为:

2、定义字数据命令为:DW DATA1 SEGMENT DW 1,,2,3,4,5,6,7,8,9,10 ; DW定义字数据DATA1 ENDS 一个字为两个字节,在存中低位在前,高位在后。

(2)查表 1、已知0~15的平方值表,查表求X(X是0到15 间任一数)的平方值,送到Y单元,用两种方法。 2、已知0~255的平方值表,查表求X的平方值,送到Y单元。 提示: 0到15的平方表,每个平方值为一个字节; 0到255的平方表,每个平方值为2个字节;调试程序,平方表中的数据定义几个就行,目的是程序正确即可。 一个字为两个字节,在存中低位在前,高位在后。

(3)计算 1、计算多字节数据67788H与99AABBCCDDEEFF00H的和。 2、计算8字节的BCD码十进制数67788H与43322H的和 3、计算10个字数据的和(数据自己定义)。 提示; 1、多字节数据在存中存放,低位在前,高位在后 DAT1 DB 88H,77H,66H,55H,44H,33H,22H,11H DAT2 DB 00H,0FFH,0EEH,0DDH,0CCH,0BBH,0AAH,99H DAT3 DB 9 DUP(0) 2、BCD十进制加法 二进制加法指令: ADD BCD十进制加法: ADD

微机原理-实验一-汇编语言-冒泡排序

微机原理实验报告 班级:XXXXX 姓名:XXXX 学号:20XXXX XXXXX大学 信息科学与技术学院 信息工程系

实验一汇编语言程序设计-(具体题目) 一、实验目的(根据实际情况修改): 1、熟悉MASM编译环境,了解程序的汇编方法; 2、熟悉常用汇编指令,学习汇编程序设计方法; 3、学习汇编语言的调试过程,通过调试过程认识CPU执行程序的方式; 4、了解冒泡法原理,学习多重循环的编程方法。 二、实验内容: 编写程序,用冒泡法实现将数据段内9,8,7,6,5,4,3,2,1按照由小到大的顺序重新排列。 三、程序流程图和程序代码 1、流程图 2、代码与注释(代码不能和指导书完全一样,写出注释,写出寄存器尤其是DS的值)

data segment buf1 db 8,7,6,5,4,3,2,1 data ends code segment assume cs:code,ds:data start: mov ax,data //传送数据段data mov ds,ax mov dx,7 //dx放外循环7次 L3: mov cx,dx //cx放内循环7次 lea si,buf1 //将db里的数据传送到si L2: mov al,[si] cmp al,[si+1] //比较[si]与[si+1] jb L1 //[si]<[si+1],跳转到L1 xchg al,[si+1] //[si]>[si+1],两两交换 mov [si],al L1: inc si //si减1 loop L2 //循环L2 dec dx //外循环减1,没减到0则跳转到L3 jnz L3 //入内循环,计数初值 mov ah,4ch int 21h code ends end start 四、调试过程及遇到的问题 1、程序执行截图

微机原理与汇编语言 习题

微机原理与汇编语言习题 1.ZF标志位是标志结果是否为零的,若结果为零,ZF为________,否则ZF为_______。当ZF 为1时,SF为________。 2.调用程序与子程序之间的参数传递方法有四种,即堆栈法、_______、______、______。 3.宏指令定义必须由伪指令________开始,伪指令______结束,两者之间的语句称为________。 4.三个重复前缀指令为__________、__________、________。 5.8086/8088 CPU可访问2个独立的地址空间,一个为存贮器地址空间,其大小为____个字节; 另一个为______,其大小为_______字节。 6.当_______________时,CPU便进入等待状态(Tw)。 7.最小模式系统除CPU、存储器、I/O接口和总线外,至少还应配置________、__________、 _________三种芯片部件或电路。 8.8086内部由_________和_______两部分组成,其作用分别是_______和______。 9.在汇编语言中,一个标号和过程有和两种属性。前者表明在段内转移和调用,后 者表示在段间转移和调用。 10.8086/8088的存储器是分段的,因此存储单元的物理地址是由和组合而成。 11.汇编语言源程序的扩展名是,目标程序的扩展名是,通常产生的可执行程序 的扩展名是。 12.指令操作数可以存放在指令中,也可以存放在CPU的寄存器中,大多数存放在存储器中,它们 分别被称为立即、寄存器和直接寻址方式。 13.微型计算机一般都采用总线结构,系统总线的信号线有三组,即数据总线、地址总线和 控制总线。 14.若要判断无符号数运算是否溢出,应根据CF 标志位;而判断有符号数运算是否溢出,应 根据OF 标志位。 15.8086/8088端口地址的范围是0000H ~ FFFFH。 16.汇编语言源程序中的语句有三种类型,他们是指令语句,伪指令语句和语句。 17.指令SAR可用来有符号数数除以2,而指令SHR则可用来无符号数数除以2。 18.用二进制代码组成的计算机能直接识别的语言称为机器语言。用机器指令的助记符以 及伪指令,宏指令表示的一种面向机器的语言称汇编语言,用该语言编写的程序需经过汇编程序翻译,成为计算机能直接识别并执行的程序称目标程序。 19.数据段中有以下定义: ARRAY1 EQU 16H ARRAY2 DW 16H 请指出下面两条指令源操作数的寻址方式: MOV AX, ARRAY1 ;寻址方式:立即寻址方式。 MOV AX, ARRAY2 ;寻址方式:直接寻址方式。 20.在数据段中使用字符串时,该字符串必须用括起来。当定义含有多个字符的字符串时,

(完整版)微机原理与接口技术汇编语言指令详解吐血版,推荐文档

第一讲 第三章指令系统--寻址方式 回顾:8086/8088的内部结构和寄存器,地址分段的概念,8086/8088的工作过程。 重点和纲要:指令系统--寻址方式。有关寻址的概念;6种基本的寻址方式及有效地址的计算。 教学方法、实施步骤时间分配教学手段 回顾5”×2讲授40” ×2提问3” ×2小结2” ×2 板书 计算机 投影仪 多媒体课件等 讲授内容: 3.1 8086/8088寻址方式 首先,简单讲述一下指令的一般格式: 操作码操作数……操作数 计算机中的指令由操作码字段和操作数字段组成。 操作码:指计算机所要执行的操作,或称为指出操作类型,是一种助记符。 操作数:指在指令执行操作的过程中所需要的操作数。该字段除可以是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是指向操作数地 址的指针或其它有关操作数的信息。 寻址方式就是指令中用于说明操作数所在地址的方法,或者说是寻找操作 数有效地址的方法。8086/8088的基本寻址方式有六种。 1.立即寻址 所提供的操作数直接包含在指令中。它紧跟 在操作码的后面,与操作码一起放在代码段区域 中。如图所示。

例如:MOV AX,3000H 立即数可以是8位的,也可以是16位的。若是16位的,则存储时低位在前,高位在后。 立即寻址主要用来给寄存器或存储器赋初值。 2.直接寻址 操作数地址的16位偏移量直接包含在指令中。它与操作码—起存放在代码段区域,操作数一般在数据段区域中,它的地址为数据段寄存器DS加上这16位地址偏移量。如图2-2所示。 例如: MOV AX,DS:[2000H]; 图2-2 (对DS来讲可以省略成 MOV AX,[2000H],系统默认为数据段)这种寻址方法是以数据段的地址为基础,可在多达64KB的范围内寻找操作数。 8086/8088中允许段超越,即还允许操作数在以代码段、堆栈段或附加段为基准的区域中。此时只要在指令中指明是段超越的,则16位地址偏移量可以与CS或SS或ES相加,作为操作数的地址。 MOV AX,[2000H] ;数据段 MOV BX,ES:[3000H] ;段超越,操作数在附加段 即绝对地址=(ES)*16+3000H 3.寄存器寻址 操作数包含在CPU的内部寄存器中,如寄存器AX、BX、CX、DX等。 例如:MOV DS,AX MOV AL,BH 4.寄存器间接寻址

微机原理(单片机汇编)实验报告

软件实验报告 软件实验一 一、实验目的 1.熟悉软件实验的基本步骤和汇编程序的调试方法; 2.了解内存块的移动方法; 3.了解将十六进制数转换成ASCII值的方法。 二、实验原理 用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。 三、实验内容及步骤 1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开CPU窗口,观察CPU窗口各寄存器的变化。打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。 2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。 3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。 4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。 5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。 四、实验结果 1.步骤1的结果为8000H-80FFH的内容都为1. 2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。

微机原理与接口技术(第二版)课后习题答案完整版

习题1 1.什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。 3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ②在计算机内部采用二进制来表示程序和数据。 ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④五大部件以运算器为中心进行组织。 4.请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存

放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5.试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6.微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7.将下列十进制数转换成二进制数、八进制数、十六进制数。 ①(4.75)10=(0100.11)2=(4.6)8=(4.C)16 ②(2.25)10=(10.01)2=(2.2)8=(2.8)16 ③(1.875)10=(1.111)2=(1.7)8=(1.E)16 8.将下列二进制数转换成十进制数。 ①(1011.011)2=(11.6)10 ②(1101.01011)2=(13.58)10 ③(111.001)2=(7.2)10 9.将下列十进制数转换成8421BCD码。 ① 2006=(0010 0000 0000 0110)BCD ② 123.456=(0001 0010 0011.0100 0101 0110)BCD 10.求下列带符号十进制数的8位基2码补码。 ① [+127]补= 01111111

微机原理与汇编语言复习题及参考答案

中南大学网络教育课程考试复习题及参考答案 微型机原理与汇编语言 一、单项选择题: 1.设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为() A.51H B.A3H C.47H D.0C5H 2.下述指令的执行结果是() MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3.完成对CL寄存器的内容乘以4的正确操作是() A.ROL CL,1 B.MUL4 C.SHL CL,1 D.MOV CL,2 ROL CL,1SHL CL,1SHL CL,CL 4.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指() A.ADD BH,01H B.OR BH,01H C.XOR BH,01H D.TEST BH,01H 5.假设(AL)=37H,(BL)=95H,执行指令IMUL BL后(AX)=() A.0E903H B.2003H C.0DBBH D.2008H 6.下面的数据传送指令中,错误的操作是() A.MOV SS:[BX+DI],1000H B.MOV DX,1000H C.MOV WORD PTR[BX],1000H D.MOV DS,2000H 7.CPU要访问的某一存储单元的实际地址称() A.段地址 B.偏移地址 C.物理地址 D.逻辑地址 8.某存储单元的物理地址是12345H,可以作为它的段地址有() A.2345H B.12345H C.12340H D.1234H 9.计算机能直接识别的的语言() A.汇编语言 B.机器语言 C.高级语言 D.低级语言 10.下列指令中操作数在代码段中的是() A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为() A.直接、立即、间接 B.直接、间接、立即 C.立即、直接、间接 D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALL AX后,栈顶的物理地址是() A.2010211 B.2010111 C.200FFH D.200FEH 13.当执行完下列指令序列后,标志位CF和OF的值是() MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14.JMP BX的目标地址偏移量是() A.SI的内容 B.SI所指向的内存字单元之内容 C.IP+SI的内容 D.IP+[SI] 15.指令MOV AX,10[BX]的源操作数的寻址方式是() A.基址寻址 B.寄存器寻址 C.变址寻址 D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的?() A.19BH+25D B.25+AL C.108-102Q D.101B*OABH 17.用来存放即将执行的指令的偏移地址的寄存器是() A.SP B.IP C.BP D.CS 18.源变址寄存器是() A.SI B.DI C.SP D.BX

微机原理与接口技术汇编语言指令详解吐血版

第一讲 第三章 指令系统--寻址方式 回顾: 8086/8088的内部结构和寄存器,地址分段的概念,8086/8088的工作过 程。 重点和纲要:指令系统--寻址方式。有关寻址的概念;6种基本的寻址方式及 有效地址的计算。 教学方法、实施步骤 时间分配 教学手段 回 顾 5”×2 板书 计算机 投影仪 多媒体课件等 讲 授 40” ×2 提 问 3” ×2 小 结 2” ×2 讲授内容: 3.1 8086/8088寻址方式 首先,简单讲述一下指令的一般格式: 操作码 操作数 …… 操作数 计算机中的指令由操作码字段和操作数字段组成。 操作码:指计算机所要执行的操作,或称为指出操作类型,是一种助记符。 操作数:指在指令执行操作的过程中所需要的操作数。该字段除可以是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。 寻址方式就是指令中用于说明操作数所在地址的方法,或者说是寻找操作数有效地址的方法。8086/8088的基本寻址方式有六种。 1.立即寻址 所提供的操作数直接包含在指令中。它紧跟在操作码的后面,与操作码一起放在代码段区域中。如图所示。 例如:MOV AX ,3000H

立即数可以是8位的,也可以是16位的。若是16位的,则存储时低位在前,高位在后。 立即寻址主要用来给寄存器或存储器赋初值。 2.直接寻址 操作数地址的16位偏移量直接包含在指令中。它与操作码—起存放在代码段区域,操作数一般在数据段区域中,它的地址为数据段寄存器DS加上这16位地址偏移量。如图2-2所示。 例如: MOV AX,DS:[2000H]; 图2-2 (对DS来讲可以省略成 MOV AX,[2000H],系统默认为数据段)这种寻址方法是以数据段的地址为基础,可在多达64KB的范围内寻找操作数。 8086/8088中允许段超越,即还允许操作数在以代码段、堆栈段或附加段为基准的区域中。此时只要在指令中指明是段超越的,则16位地址偏移量可以与CS或SS或ES相加,作为操作数的地址。 MOV AX,[2000H] ;数据段 MOV BX,ES:[3000H] ;段超越,操作数在附加段 即绝对地址=(ES)*16+3000H 3.寄存器寻址 操作数包含在CPU的内部寄存器中,如寄存器AX、BX、CX、DX等。 例如:MOV DS,AX MOV AL,BH 4.寄存器间接寻址 操作数是在存储器中,但是,操作数地址的16位偏移量包含在以下四个寄

微机原理与接口技术试验学习总结

微机原理与接口技术试验学习总结 本学期微机原理的实验课程即将结束,关于微机原理课程实验的心得体会颇多。 初学《微机原理》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。“麻雀虽小,五脏俱全”,可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理》课程有许多新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的并不是很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念。 在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要,在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。然而,事物总有两面性,有优点自然缺点也不少。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单基础的开始。那么学习高级语言也当然应当从汇编开始。学习汇编语言实际上是培养了学习计算机语言的能力和素养。个人认为,学习汇编语言对学习其他语言很有促进作用。 汇编语言在本学期微机学习中有核心地位。本学期微机原理课程内容繁多,还学习了可编程的计数/定时的8253,可编程的外围接口芯片8255A等。学的都是芯片逻辑器件,而在名字前都标有“可编程”,其核心作用不可低估。 我想微机原理课程试验不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特之处,那就是让我们进入一个神奇的世界,那就是编程。对我们来说汇编真的很新奇,很有趣,也使我有更多的兴趣学习微机原理和其

相关主题
文本预览
相关文档 最新文档