收藏 分享(赏)

计算机组成原理与汇编语言程序设计编程练习题.doc

上传人:dzzj200808 文档编号:2342149 上传时间:2018-09-11 格式:DOC 页数:10 大小:71.50KB
下载 相关 举报
计算机组成原理与汇编语言程序设计编程练习题.doc_第1页
第1页 / 共10页
计算机组成原理与汇编语言程序设计编程练习题.doc_第2页
第2页 / 共10页
计算机组成原理与汇编语言程序设计编程练习题.doc_第3页
第3页 / 共10页
计算机组成原理与汇编语言程序设计编程练习题.doc_第4页
第4页 / 共10页
计算机组成原理与汇编语言程序设计编程练习题.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、计算机组成原理与汇编语言程序设计编程练习题一、填空题1、 构成 MSAM 汇编语言程序的三种语句是:指令语句、 和宏指令语句。2、 构成 MSAM 汇编语言程序的三种语句是: 、伪指令语句和宏指令语句。3、 构成 MSAM 汇编语言程序的三种语句是:指令语句、伪指令语句和 。4、 在汇编程序中的变量均有三个属性:段属性、偏移量属性和 。5、 在汇编程序中的变量均有三个属性: 、偏移量属性和类型属性。6、 在汇编程序中的变量均有三个属性:段属性、 和类型属性。7、 在汇编语言程序设计中的三种构成方法是:顺序程序设计、 和循环程序设计。8、 在汇编语言程序设计中的三种构成方法是: 、分支程序设计和

2、循环程序设计。9、 在汇编语言程序设计中的三种构成方法是:顺序程序设计、分支程序设计和 。10、汇编语言中的常数有 和字符常数。11、在汇编语言程序设计中的三种构成方法分别是:顺序程序设计、 和循环程序设计。12、汇编语言源程序至少须有一个_段和一条_伪指令,而_段和_段则视需要而设。二、判断题1、 指令 TEST AL,0 执行后 AL 的内容一定是全零。( )2、 逻辑右移 1 位和算术右移 1 位结果都是一样的。( )3、 下面是合法的数据传送指令:MOV AL,255。( )4、 指令之间的衔接方式有两种:串行的重叠处理方式和并行的顺序安排方式。( ) 5、 指令 SHRAX,4 可以

3、将 AX 的内容逻辑右移 4 位。( )三、单项选择题1、 把源程序变成目标程序的应用软件是 _ 。A、EDIT B、MASM C、LINK D、DEBUG 四、简答题1. 请简述汇编语言程序开发的过程2. 请简述汇编语言源程序和机器语言程序有什么不同?3. 汇编程序开发步骤中的汇编程序 MASM 的主要作用是什么?4. MASM 汇编程序开发步骤中的 LINK 的主要作用是什么?5. 顺序程序设计的主要特点是什么?6. 一个循环程序通常由哪 5 个部份组成?7. 请回答汇编语言程序开发的四个主要步骤8. 请回答汇编语言程序开发过程中的第二和第三步所需要的软件名称和生成的主要文件的扩展名。 (

4、如第一步需要软件名称是字编辑软件 PE 等,生成的源程序的扩展名是 ASM)9. 请简述调用系统功能子程序的设计格式是什么?10. 指令语句和伪指令语句有什么不同?11. 简述汇编语言的组成及各基本语句的作用。12. 什么是系统调用?如何进行系统调用?五、分析设计题1. 如下程序是准备将 0 至 100 中的奇数求和,结果送 SUM 字单元,请用汇编语言完成此程序的设计。DATA SEGMENT;(1)定义结果单元,初值为 0DATA ENDSSTACT SEGMENT PARA STACKDB 100 DUP(?)STACK ENDS ;定义好堆栈CODE SEGMENTASSUME DS:

5、DATA,CS:CODE ,SS:STACKSTART: MOV ;(2)MOV DS,AX ;装填 DATA 数据段地址MOV AX,0MOV DX,1LOOP1: CMP DX,100JG EXIT ;大于转移ADD AX,DX;(3)调整 DX 的值JMP LOOP1 ;无条件转移EXIT: ;( 4)将结果存入 SUM 单元MOV AH, 4CHINT 21H ;正常返回 DOSCODE ENDS;(5)程序结束2. 如下程序是准备将 100 至 200 中的奇数求和,结果送 SUM 字单元,请用汇编语言完成此程序的设计。DATA SEGMENTSUM DW 0 ;定义结果单元,初值为

6、 0DATA ENDSSTACT SEGMENT PARA STACKDB 100 DUP(?);(1)定义好堆栈CODE SEGMENT ;(2)分配段寄存器START: MOV AX,DATA;(3)装填 DATA 数据段地址MOV AX,0MOV DX,101LOOP1: ;(4)比较,形成条件JG EXIT ;大于转移ADD AX,DXINC DX ;调整 DX 的值INC DX; (5)做下一次EXIT: MOV SUM, AX ;将结果存入 SUM 单元MOV AH, 4CHINT 21H ;正常返回 DOSCODE ENDSEND START ;程序结束3. 如下程序是准备将 0

7、 至 100 中的偶数求和,结果送 SUM 字单元,请用汇编语言完成此程序的设计。DATA SEGMENTSUM DW 0 ;定义结果单元,初值为 0DATA ENDSSTACT SEGMENT PARA STACKDB 100 DUP(?)STACK ENDS ;定义好堆栈CODE SEGMENT;(1)分配段寄存器START: MOV AX,DATAMOV DS,DATA ;装填 DATA 数据段地址;(2)设定初值MOV DX,2LOOP1: ;(3)比较,形成条件JG EXIT ;大于转移ADD AX,DXINC DX ;调整 DX 的值INC DXJMP LOOP1 ; 做下一次EX

8、IT: ;(4)将结果存入 SUM 单元;(5)置入口参数INT 21H ;正常返回 DOSCODE ENDSEND START ;程序结束4. 如下程序是准备将 100 至 200 中的偶数求和,结果送 SUM 字单元,请用汇编语言完成此程序的设计。DATA SEGMENTSUM DW 0 ;定义结果单元,初值为 0DATA ENDSSTACT SEGMENT PARA STACK; (1)定义 100 个字节的堆栈空间STACK ENDS CODE SEGMENT;(2)分配段寄存器START: MOV AX,DATAMOV DS,DATA ;装填 DATA 数据段地址MOV AX,0 ;

9、(3)设定初值LOOP1: ;(4)比较,形成条件JG EXIT ;大于准备结束ADD AX,DXINC DX ;调整 DX 的值INC DXJMP LOOP1 ; 做下一次EXIT: MOV SUM, AX ;将结果存入 SUM 单元MOV AX,4C00H ;(5)正常返回 DOSCODE ENDSEND START ;程序结束5. 如下程序是准备将 VAR 单元中低四位的二进值转换成 ASCII 码,结果送 ABC 单元,请用汇编语言完成此程序的设计。DATA SEGMENTABC DB 0 ;定义结果单元,初值为 0VAR DB ?DATA ENDSSTACT SEGMENT PARA

10、 STACK;(1)定义 100 个字节的堆栈空间STACK ENDS CODE SEGMENT;(2)分配段寄存器START: MOV AX,DATAMOV DS,DATA ;装填 DATA 数据段地址MOV AL, VAR;(3)将 AL 高 4 位清零CMP 9,ALJAE EXIT ;AL 小于等于 9 时转 EXIT;(4)大于 9 时调整 ALEXIT: ADD AL, 30HMOV ABC,ALMOV AH,4CH;(5)返回 DOSCODE ENDSEND START ;程序结束6. 已知 VAR 低 4 位的值是小于 16 的无符号数,如下程序是准备将 VAR 单元中低 4

11、位的值转换成 ASCII 码,结果送 ABC 单元,请用汇编语言完成此程序的设计。DATA SEGMENTABC DB 0 ;定义结果单元,初值为 0VAR DB ? ;小于 16DATA ENDSSTACT SEGMENT PARA STACK; (1)定义 100 个字节的堆栈空间STACK ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK ;分配段寄存器START: MOV AX,DATA;(2)装填 DATA 数据段地址MOV AL, VARAND AL,0FH ; 将 BL 的高四位清零9,AL ;(3)比较 AL 是否大于 9JAE

12、EXIT ;AL 小于等于 9 时转 EXITADD AL,7EXIT: ;( 4)对 AL 加工为 ASCII 码MOV ABC,AL;(5)返回 DOS 系统调用入口参数INT 21HCODE ENDSEND START ;程序结束7. 如下程序是准备将 VAR 单元中高四位的二进值转换成 ASCII 码,结果送 ABC 单元,请用汇编语言完成此程序的设计。DATA SEGMENTABC DB 0 ;定义结果单元,初值为 0VAR DB ?DATA ENDSSTACT SEGMENT PARA STACKDB 100 DUP(?) ;定义 100 个字节的堆栈空间STACK ENDS CO

13、DE SEGMENT;(1)分配段寄存器START: MOV AX,DATA;(2)装填 DATA 数据段地址MOV AL, VAR;(3)移位次数送寄存器SHL AL,CL AND AL,0FHCMP 9,ALJAE EX09 ;AL 小于等于 9 时转 EX09;(4)大于 9 时 AL 加工JMP EXITEX09: ADD AL,30HEXIT: MOV ABC,ALMOV AH,4CH;(5)返回 DOSCODE ENDSEND START ;程序结束8. 如下程序是准备将 VAR 单元中 D2 至 D5 四位的二进值转换成 ASCII 码,结果送 ABC 单元,请用汇编语言完成此程

14、序的设计。DATA SEGMENTABC DB 0 ;定义结果单元,初值为 0VAR DB ?DATA ENDSSTACT SEGMENT PARA STACKDB 100 DUP(?) ;定义 100 个字节的堆栈空间STACK ENDS CODE SEGMENT;(1)分配段寄存器START: ;( 2)装填 DATA 数据段地址MOV DS,AXMOV AL, VAR;(3)移位次送寄存器SHL AL,CL ;(4)清 AL 高 4 位为 0CMP 9,ALJAE EXIT ;AL 小于等于 9 时转 EXITADD AL, 7 ;大于 9 时 AL 加工为 BCD 码EXIT: ADD

15、 AL,30H;(5)存结果MOV AH,4CHINT 21H ;返回 DOSCODE ENDSEND START ;程序结束9. 已知 STR 是一个以$为结束的字符串,如下程序统计字符A在字符串中出现的次数,并将统计结果送 COUNT 单元,请用汇编语言完成此程序的设计。DATA SEGMENTSTR DB ACabAabbbAHJA, $ ;定义 STR 串; (1)定义 COUNT 字节单位,初值为零DATA ENDSSTACT SEGMENT PARA STACK| DB 100 DUP(?) ;定义 100 个字节的堆栈空间STACK ENDS CODE SEGMENTASSUME

16、 DS:DATA,CS:CODE ,SS:STACK ;分配段寄存器START: MOV AX,DATAMOV DS,AX ; 装填 DATA 段段地址MOV CL,0; (2) 装入 STR 有效地址到 SILOOP1: ; (3)取 STR 中的一个字符送寄存器CMP AL, A JZ SUM ; 如果是A字符转统计CMP AL , $ ; 比较是否为串结束符; (4)如果是$转; (5)调整 SIJMP LOOP1SUM: INC CLINC SIJMP LOOP1EXIT: MOV COUNT,CL ;结果送入 COUNT 单元MOV AH,4CHINT 21H ;返回 DOSCODE

17、 ENDSEND START10. 已知 STR 是一个以 $为结束的字符串,如下程序统计字符A在字符串中出现的次数,并将统计结果送 COUNT 单元,请用汇编语言完成此程序的设计。DATA SEGMENTSTR DB AVCFACabAabbbAHJA, $ ;定义 STR 串COUNT DB 0 ;定义 COUNT 字节单位,初值为零DATA ENDSSTACT SEGMENT PARA STACK;(1)定义 1K 个字节的堆栈空间STACK ENDS CODE SEGMENTASSUME DS:DATA,CS:CODE ,SS:STACK ;分配段寄存器START: MOV AX,DA

18、TAMOV DS,AX ; 装填 DATA 段段地址MOV CL,0; (2) 装入 STR 有效地址到LOOP1:MOV AL ,SI ;取 STR 中的一个字符送 AL 寄存器; (3)比较取出的字符是A?JZ SUM ;如果是A字符转统计CMP AL , $ ;比较是否为串结束符JZ EXIT ;如果是$转; (4)调整 SIJMP LOOP1SUM: ; (5)统计数加 1INC SIJMP LOOP1EXIT: MOV COUNT,CL ;结果送入 COUNT 单元MOV AH,4CHINT 21H ;返回 DOSCODE ENDSEND START二、第 5 章练习题解答1、填空题

19、参考答案1、 伪指令语句2、 指令语句3、 宏指令语句4、 类型属性5、 段属性6、 偏移量属性 (或位移量属性)7、 分支程序设计8、 顺序程序设计9、 循环程序设计10、 数值常数11、 分支程序设计。12、 代码; END; 数据; 堆栈。2、判断题参考答案1.(错) 2. (错) 3. (对) 4.(错) 5.(错) 3、单项选择题参考答案1.B 4、简答题参考答案1用文字编辑软件编辑源程序文件(1)调用汇编程序 MASM 将源程序汇编成目标程序(2)如果有错则转(1),无错则下一步(3)调用连接文件 LINK 将目标程序转成可执行文件(4)装载运行(或用框图作答也对)2 (1)机器语

20、言程序是指用二进制代码组成的指令序列(2)汇编语言是将机器语言“符号化” ,汇编的指令语句与机器指令一一对应3对源程序进行汇编,如果源程序无语法错,就把源程序汇编生成目标程序。4连接程序 LINK 将目标程序( OBJ)转换为一个可执行文件(EXE)5程序运行时,完全按照编写的指令顺序执行,且每条指令仅执行一次。6 (1)初始化部份; (2)工作部份 (3)修改部份(4)控制部份 (5)结束处理部份7 (1)编辑生成源程序 (2)汇编源程序生成目标程序(3)连接目标程序生成可执行文件 (4)运行调试可执行文件8 (1)汇编程序 MASM。生成的目标程序扩展名 OBJ;(2)连接程序 LINK。

21、生成的可执行文件扩展名 EXE。9 (1)送入口参数到指定寄存器 (2)送子功能号到 AH(3)发出软中断指令 INT10 (1)指令语句汇编时生成可供执行的指令代码。(2)伪指令语句是指示汇编程序如何汇编源程序,汇编时不生成指令代码。11 (1)汇编语言是由指令语句、伪指令语句、和宏指令语句组成。(2)指令语句是程序运行时所执行的语句;(3)伪指令语句是汇编过程中执行的语句;(4)宏指令语句是在汇编过程中产生指令代码用于替代程序中多次出现的程序段。12 系统调用 DOS 调用中通过 INT 21H 的调用。其过程是:(1)置入口参数(1 分) ;(2)将系统功能号送入 AH:(3)执行系统调

22、用 INT 21H。5、分析设计题参考答案1、 解答:(1)SUM DW 0 (2) AX,DATA (3)ADD DX ,2 (4) MOV SUM ,AX(5)END START2、 解答:(1)STACK ENDS (2)ASSUME CS:CODE,DS:DATA ,SS,STACK(3)MOV DS,AX (4)CMP DX,200(5)JMP LOOP13、 解答:(1)ASSUME CS:CODE,DS:DATA,SS:STACK(2) MOV AX,0(3) CMP DX,100(4) MOV SUM,AX(5) MOV AH,4CH (或 MOV AX,4CXXH)4、 解答

23、:(1)DB 100 DUP(0)(2)ASSUME CS:CODE,DS:DATA,SS:STACK(3)MOV DX,100(4)CMP DX,200(5)INT 21H5、 解答:(1)DB 100 DUP(?)(2)ASSUME CS:CODE,DS:DATA,SS:STACK(3)AND AL,0FH(4)ADD AL,7(5)INT 21H6、 解答:(1)DB 100 DUP(?)(2)MOV DS, AX(3)CMP(4)ADD AL,30H(5)MOV AH,4CH (或 MOV AX,4CxxH)7、 解答:(1)ASSUME CS:CODE,DS:DATA,SS:STAC

24、K(2)MOV DS, AX(3)MOV CL,4(4)ADD AL,37H(5)INT 21H8、 解答:(1)ASSUME CS:CODE,DS:DATA,SS:SATCK(2)MOV AX,DATA(3)MOV CL,2(4)AND AL,0FH(5)MOV ABC,AL9、 解答:(1)COUNT DB 0(2)LEA SI,STR (或 MOV SI,OFFSET STR)(3)MOV AL,SI(4)JZ EXIT(5)INC SI10、解答:(1)DB 1024 DUP(?)(2)LEA SI ,STR (MOV SI,OFFSET STR )(3)CMP AL, A(4)INC SI(5)INC CL

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报