《计算机组成原理与汇编语言程序设计》编程练习题
一、填空题
1、 构成MSAM汇编语言程序的三种语句是:指令语句、 和宏指令语句。 2、 构成MSAM汇编语言程序的三种语句是: 、伪指令语句和宏指令语句。 3、 构成MSAM汇编语言程序的三种语句是:指令语句、伪指令语句和 。 4、 在汇编程序中的变量均有三个属性:段属性、偏移量属性和 。 5、 在汇编程序中的变量均有三个属性: 、偏移量属性和类型属性。 6、 在汇编程序中的变量均有三个属性:段属性、 和类型属性。
7、 在汇编语言程序设计中的三种构成方法是:顺序程序设计、 和循环程序设计。 8、 在汇编语言程序设计中的三种构成方法是: 、分支程序设计和循环程序设计。 9、 在汇编语言程序设计中的三种构成方法是:顺序程序设计、分支程序设计和 。 10、汇编语言中的常数有 和字符常数。
11、在汇编语言程序设计中的三种构成方法分别是:顺序程序设计、 和循环程序设计。 12、汇编语言源程序至少须有一个_______________段和一条_______________伪指令,而________________段和__________________段则视需要而设。 二、判断题
1、 指令TEST AL,0执行后AL的内容一定是全零。( ) 2、 逻辑右移1位和算术右移1位结果都是一样的。( ) 3、 下面是合法的数据传送指令:MOV AL,255。( )
4、 指令之间的衔接方式有两种:串行的重叠处理方式和并行的顺序安排方式。( ) 5、 指令SHRAX,4可以将AX的内容逻辑右移4位。( ) 三、单项选择题
1、 把源程序变成目标程序的应用软件是 _ 。 A、EDIT B、MASM C、LINK D、DEBUG 四、简答题
1. 请简述汇编语言程序开发的过程
2. 请简述汇编语言源程序和机器语言程序有什么不同?
3. 汇编程序开发步骤中的汇编程序MASM的主要作用是什么? 4. MASM汇编程序开发步骤中的LINK的主要作用是什么? 5. 顺序程序设计的主要特点是什么? 6. 一个循环程序通常由哪5个部份组成? 7. 请回答汇编语言程序开发的四个主要步骤
8. 请回答汇编语言程序开发过程中的第二和第三步所需要的软件名称和生成的主要文件的扩展名。(如第一步需要软件名称是字编辑软件PE等,生成的源程序的扩展名是ASM) 9. 请简述调用系统功能子程序的设计格式是什么? 10. 指令语句和伪指令语句有什么不同?
11. 简述汇编语言的组成及各基本语句的作用。 12. 什么是系统调用?如何进行系统调用? 五、分析设计题
1. 如下程序是准备将0至100中的奇数求和,结果送SUM字单元,请用汇编语言完成此程序的设计。
DATA SEGMENT
;(1)定义结果单元,初值为0
DATA ENDS
STACT SEGMENT PARA STACK DB 100 DUP(?)
STACK ENDS ;定义好堆栈 CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK START: MOV ;(2)
MOV DS,AX ;装填DATA数据段地址 MOV AX,0 MOV DX,1 LOOP1: CMP DX,100
JG EXIT ;大于转移 ADD AX,DX
;(3)调整DX的值 JMP LOOP1 ;无条件转移 EXIT: ;(4)将结果存入SUM单元 MOV AH, 4CH
INT 21H ;正常返回DOS CODE ENDS
;(5)程序结束 2. 如下程序是准备将100至200中的奇数求和,结果送SUM字单元,请用汇编语言完成此程序的设计。
DATA SEGMENT
SUM DW 0 ;定义结果单元,初值为0 DATA ENDS
STACT SEGMENT PARA STACK DB 100 DUP(?)
;(1)定义好堆栈 CODE SEGMENT
;(2)分配段寄存器 START: MOV AX,DATA
;(3)装填DATA数据段地址 MOV AX,0 MOV DX,101
LOOP1: ;(4)比较,形成条件 JG EXIT ;大于转移 ADD AX,DX
INC DX ;调整DX的值 INC DX
; (5)做下一次
EXIT: MOV SUM, AX ;将结果存入SUM单元 MOV AH, 4CH
INT 21H ;正常返回DOS
CODE ENDS
END START ;程序结束
3. 如下程序是准备将0至100中的偶数求和,结果送SUM字单元,请用汇编语言完成此程序的设计。
DATA SEGMENT
SUM DW 0 ;定义结果单元,初值为0 DATA ENDS
STACT SEGMENT PARA STACK DB 100 DUP(?)
STACK ENDS ;定义好堆栈 CODE SEGMENT
;(1)分配段寄存器 START: MOV AX,DATA
MOV DS,DATA ;装填DATA数据段地址 ;(2)设定初值 MOV DX,2
LOOP1: ;(3)比较,形成条件 JG EXIT ;大于转移 ADD AX,DX
INC DX ;调整DX的值 INC DX
JMP LOOP1 ; 做下一次 EXIT: ;(4)将结果存入SUM单元 ;(5)置入口参数 INT 21H ;正常返回DOS CODE ENDS
END START ;程序结束 4. 如下程序是准备将100至200中的偶数求和,结果送SUM字单元,请用汇编语言完成此程序的设计。 DATA SEGMENT
SUM DW 0 ;定义结果单元,初值为0 DATA ENDS
STACT SEGMENT PARA STACK
; (1)定义100个字节的堆栈空间 STACK ENDS CODE SEGMENT
;(2)分配段寄存器 START: MOV AX,DATA
MOV DS,DATA ;装填DATA数据段地址 MOV AX,0
;(3)设定初值 LOOP1: ;(4)比较,形成条件 JG EXIT ;大于准备结束
ADD AX,DX
INC DX ;调整DX的值 INC DX
JMP LOOP1 ; 做下一次
EXIT: MOV SUM, AX ;将结果存入SUM单元 MOV AX,4C00H
;(5)正常返回DOS CODE ENDS
END START ;程序结束
5. 如下程序是准备将VAR单元中低四位的二进值转换成ASCII码,结果送ABC单元,请用汇编语言完成此程序的设计。
DATA SEGMENT
ABC DB 0 ;定义结果单元,初值为0 VAR DB ? DATA ENDS
STACT SEGMENT PARA STACK
;(1)定义100个字节的堆栈空间 STACK ENDS CODE SEGMENT
;(2)分配段寄存器 START: MOV AX,DATA
MOV DS,DATA ;装填DATA数据段地址 MOV AL, VAR
;(3)将AL高4位清零 CMP 9,AL
JAE EXIT ;AL小于等于9时转EXIT ;(4)大于9时调整AL EXIT: ADD AL, 30H MOV ABC,AL MOV AH,4CH
;(5)返回DOS CODE ENDS
END START ;程序结束
6. 已知VAR低4位的值是小于16的无符号数,如下程序是准备将VAR单元中低4位的值转换成ASCII码,结果送ABC单元,请用汇编语言完成此程序的设计。 DATA SEGMENT
ABC DB 0 ;定义结果单元,初值为0 VAR DB ? ;小于16 DATA ENDS
STACT SEGMENT PARA STACK
; (1)定义100个字节的堆栈空间 STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK ;分配段寄存器 START: MOV AX,DATA
;(2)装填DATA数据段地址 MOV AL, VAR
AND AL,0FH ; 将BL的高四位清零 9,AL ;(3)比较AL是否大于9 JAE EXIT ;AL小于等于9时转EXIT ADD AL,7
EXIT: ;(4)对AL加工为ASCII码 MOV ABC,AL
;(5)返回DOS系统调用入口参数 INT 21H CODE ENDS
END START ;程序结束
7. 如下程序是准备将VAR单元中高四位的二进值转换成ASCII码,结果送ABC单元,请用汇编语言完成此程序的设计。 DATA SEGMENT
ABC DB 0 ;定义结果单元,初值为0 VAR DB ? DATA ENDS
STACT SEGMENT PARA STACK
DB 100 DUP(?) ;定义100个字节的堆栈空间 STACK ENDS CODE SEGMENT
;(1)分配段寄存器 START: MOV AX,DATA
;(2)装填DATA数据段地址 MOV AL, VAR
;(3)移位次数送寄存器 SHL AL,CL AND AL,0FH CMP 9,AL
JAE EX09 ;AL小于等于9时转EX09 ;(4)大于9时AL加工 JMP EXIT EX09: ADD AL,30H EXIT: MOV ABC,AL MOV AH,4CH
;(5)返回DOS CODE ENDS
END START ;程序结束
8. 如下程序是准备将VAR单元中D2至D5四位的二进值转换成ASCII码,结果送ABC单
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机组成原理与汇编语言程序设计编程练习题在线全文阅读。
相关推荐: