大工19春《汇编语言程序设计》大作业题目及要求答案
- 格式:docx
- 大小:39.28 KB
- 文档页数:6
大工19秋《汇编语言程序设计》在线作业3试卷总分:100 得分:100一、单选题 (共 10 道试题,共 50 分)1.假设(EAX),(EBX),(DS)=0010H,试问MOV ECX,[EAX+EBX]指令访问内存的物理地址是()。
ABCD[标准参考解析]正确选择是:D2.阅读下面的程序片段。
(1)MOV AX,723AH(2)MOV BX,0C86BH (3)SUB AL,BL (4)SBB AH,BH(5)XOR AL,01H (6)ADC AX,0执行该程序片段后:(AX)等于()。
A.BCCEHB.A9CFHC.A9CEHD.0[标准参考解析]正确选择是:C3.阅读下面的程序片段。
(1)MOV AX,723AH(2)MOV BX,0C86BH (3)SUB AL,BL (4)SBB AH,BH(5)XOR AL,01H (6)ADC AX,0执行该程序片段后:CF等于()。
A.BB.AC.1D.0[标准参考解析]正确选择是:D4.阅读下面的程序片段。
(1)MOV AX,723AH(2)MOV BX,0C86BH (3)SUB AL,BL (4)SBB AH,BH(5)XOR AL,01H (6)ADC AX,0执行该程序片段后:OF等于()。
A.CB.BC.1D.0[标准参考解析]正确选择是:D5.下面指令执行后,(1)DAW DW 2A05H(2)DAB DB 0FAH (3)MOV AL,BYTE PRT DAW (4)SUB DAB,AL 变量DAB中的内容是()。
A.0F6HB.0F5HC.0E65H。
(单选题)1: 汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是()。
A: 名字项B: 操作数项C: 注释项D: 以上都不对正确答案:(单选题)2: 汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()。
A: 名字的第一个字符可以是大写英文字母B: 名字的第一个字符可以是字母、数字、@、_C: 名字的有效长度≤31个字符D: 一般来说,名字项可以是标号正确答案:(单选题)3: 以下五个指令(1)MOV AL,55H (2)MOV CL,2(3)ROL AL,CL (4)OR AL,1 (5)RCL AL,CL顺序执行完后,(AL)=多少?A: 54HB: 53HC: 55HD: 52H正确答案:(单选题)4: 以下五个指令(1)MOV AL,55H (2)MOV CL,2(3)ROL AL,CL (4)OR AL,1 (5)RCL AL,CL顺序执行完后,(CL)=多少?A: 2B: 3C: 4D: 5正确答案:(单选题)5: 以下五个指令(1)MOV AL,55H (2)MOV CL,2(3)ROL AL,CL (4)OR AL,1 (5)RCL AL,CL顺序执行完后,CF=多少?A: 1B: 2C: 3D: 0正确答案:(单选题)6: 如果(AL)=01111111B,执行INC AL指令后,CF=()。
A: 1B: 0C: 2D: 和执行INC AL指令之前的取值保持一致正确答案:(单选题)7: 如果(SP)=30H,执行PUSH BX指令后,(SP)=()。
A: 28HB: 2EHC: 32HD: 31H正确答案:(单选题)8: 如果当前(BL)=57H,执行指令ADD BL,0F0H后,OF标志位的取值为()。
A: 1B: 0C: 不确定D: 2正确答案:(单选题)9: 在DEBUG中,T命令的功能是()。
A: 观察某内存单元的当前内容B: 连续运行被调试的程序C: 单步执行下一条指令D: 修改指定寄存器的内容正确答案:(单选题)10: 如果数据段中一个内存单元对应的物理地址为2F724H,(DS)=2F00H,那么使用DS段寄存器指明该单元的段基值时,需要使用哪一个偏移量才能正确访问该单元()。
一、单项选择题从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。
1.用来存放下一条将要执行的指令地址的寄存器是 (B )A.SP B.IP C.BP D.CS2.要使串处理从低地址向高地址进行,应把标志位置为 (D )A.IF=1 B.TF=0C.DF=1 D.DF=03.使状态标志位CF清零的错误指令是 (C )A.OR AX,AX B.SUB AX,AXC.MOV CF,0 D.CLC4.设SP=1110H,执行PUSH AX指令后,SP的内容为 (B )A.SP=1112H B.SP=110EHC.SP=1111H D.SP=110FH5.汇编源程序出现语法错误的指令有 (D )A.MOV [BX+SI],AL B. MOV AX,[BP+DI]C.MOV DS,AX D. MOV CS,AX6.下列串操作指令中,必须同时指明源串和目的串地址的指令是 (D )A.STOSW B.LODSWC.SCASW D.CMPSW7.设BL中有一无符号数,实现把BL中的数乘以2,应选用的指令是 (B )A.SHR BL,1 B.SHL BL,1C.SAR BL,1 D.RCR BL,18.执行PUSH AX指令的正确步骤是 (A )A.1.SP←SP-1,(SP)←AH B.1.(SP)←AH,SP←SP-12.SP←SP-1,(SP)←AL 2.(SP)←AL,SP←SP-1C.1.SP←SP+1,(SP)←AH D.1.(SP)←AH,SP←SP+12.SP←SP+1,(SP)←AL 2.(SP)←AL,SP←SP+19.CF=1 时转移到目标地址的条件转移指令是 (B )A.JNC B.JC C.JZ D.JS10.在执行NEG指令时,对标志位CF有影响,其影响的规则是 ( C )A.对正数求补时,CF=0 B.对负数求补时,CF=0C.对非零数求补时,CF=1 D.对零求补时,CF=111.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是(A )A.目的操作数最高位为0 B.目的操作数最高位为1C.目的操作数为任意情况 D.无论什么情况都不可能相同12.设AL=04H,BL=0F8H,执行IMUL BL指令后,结果是 ( D )A.AX=0032H B.AX=00E0HC.AX=03E0H D.AX=0FFE0H13.指令的操作数中,允许出现表达式,例如BUF1与BUF2均为变量名,下面指令中语法正确的是 (D )A.MOV AX,BUFl*BUF2B.MOV AX,BUF1/BUF2C.MOV AX,BUF1+ES:BUF2D .MOV AX ,BUF2-BUF114.下面指令中,操作数的寻址方式为寄存器间接寻址的指令是 (C )A .INC WORD PTR [BX+SI]B .INC CX ,[SI+COUNT]C .NEG BYTE PTR [BX]D .ADD AX ,B15.NUM EQU 80HDA DB 34HAND DA ,NUM上述语句执行后,DA 中的内容是 (D )A .0B4HB .80HC .34HD .016.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为 (A )A .立即、直接、间接B .直接、间接、立即C .直接、立即、间接D .不一定17.语句DA1 DB 2 DUP(3,5,7)汇编后,该语句可等同于的语句是 (D )A .DA1 DB 3,5,7B .DA1 DB 2,3,5,7C .DA1 DB 3,5,7,2D .DA1 DB 3,5,7,3,5,718. MOV AL ,80HMOV CL ,2SAR AL ,CL上述指令序列执行后,结果是 (D )A .AL=40HB .AL=20HC .AL=0C0HD .AL=0E0H19.下面是实现将AL 内容加1的压缩型BCD 码加法程序段,其中正确的指令序列是 (A ) A .INC ALB .ADD AL ,1DAA DASC .ADD AL ,1 D .STCDAA AAA20.现有数据存储如图所示:30100H 30101H 30102H 30103H设AL=01H ,BX=0100H ,DS=3000H 执行换码指令XLAT 后正确的结果是(B )A .AL=20HB .AL=38HC .AL=00HD .AL=41H21.若定义DAT DW 'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是 (B )A .0041HB .4100H20H38H41H55HC.xx41H D.41xxH[注]选项C. 和D.中的XX表示任意数据。
汇编语言程序设计教案及习题答案教案章节:一、汇编语言简介1. 汇编语言的概念2. 汇编语言的特点3. 汇编语言的应用领域二、汇编语言的基本语法1. 数据类型及表示2. 指令格式及分类3. 寄存器使用规则三、汇编语言程序设计步骤1. 分析需求,确定程序功能2. 选择合适的汇编语言及开发环境3. 编写汇编代码,调试程序4. 优化程序性能四、常用汇编指令及功能1. 数据传输指令2. 算术运算指令3. 逻辑运算指令4. 控制流指令5. 字符串操作指令6. 中断指令五、汇编语言与C语言的接口编程1. extern声明汇编函数2. 调用汇编函数的方法3. 汇编函数与C函数的数据交换4. 实例分析:汇编语言实现字符串排序习题答案:一、汇编语言简介1. 汇编语言是一种低级编程语言,用于编写计算机程序。
(正确)2. 汇编语言可以直接操作计算机硬件资源。
(正确)3. 汇编语言程序可读性差,不易维护。
(正确)二、汇编语言的基本语法1. 数据类型及表示a. 字节:8位(正确)b. 字:16位(正确)c. 双字:32位(正确)d. 四字:64位(正确)2. 指令格式及分类a. 操作码(正确)b. 操作数(正确)c. 寄存器(正确)d. 标志位(正确)3. 寄存器使用规则a. 通用寄存器:AX, BX, CX, DX(正确)b. 段寄存器:CS, DS, ES, SS(正确)c. 指令指针:IP(正确)d. 状态寄存器:FLAGS(正确)三、汇编语言程序设计步骤1. 分析需求,确定程序功能(正确)2. 选择合适的汇编语言及开发环境(正确)3. 编写汇编代码,调试程序(正确)4. 优化程序性能(正确)四、常用汇编指令及功能1. 数据传输指令a. MOV:数据传送(正确)b. PUSH:压栈(正确)c. POP:出栈(正确)d. XCHG:交换数据(正确)2. 算术运算指令a. ADD:加法(正确)b. SUB:减法(正确)c. MUL:无符号乘法(正确)d. IMUL:有符号乘法(正确)3. 逻辑运算指令a. AND:逻辑与(正确)b. OR:逻辑或(正确)c. XOR:逻辑异或(正确)d. NOT:逻辑非(正确)4. 控制流指令a. JMP:无条件跳转(正确)b. JE:相等跳转(正确)c. JNE:不相等跳转(正确)5. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)6. 中断指令a. INT:软件中断(正确)b. INTO:中断向量表(正确)五、汇编语言与C语言的接口编程1. extern声明汇编函数(正确)2. 调用汇编函数的方法(正确)3. 汇编函数与C函数的数据交换(正确)4. 实例分析:汇编语言实现字符串排序(正确)汇编语言程序设计教案及习题答案教案章节:六、汇编语言的输入与输出1. 输入输出指令2. 字符串操作指令3. 实例分析:编写一个简单的输入输出程序七、汇编语言的杂项指令1. 杂项指令的概念2. 常用杂项指令及其功能3. 实例分析:杂项指令的应用八、汇编语言的子程序调用1. 子程序调用的概念2. 子程序的定义与调用3. 子程序的返回4. 实例分析:子程序在汇编语言中的应用九、汇编语言的程序举例1. 实例一:计算两个数的和2. 实例二:字符串的复制3. 实例三:数制的转换4. 实例四:文件的读写十、汇编语言程序的调试与优化1. 调试工具的使用2. 调试方法与技巧3. 程序优化的概念4. 程序优化的方法与技巧习题答案:六、汇编语言的输入与输出1. 输入输出指令a. IN:输入指令(正确)b. OUT:输出指令(正确)c. INPUT:输入函数(正确)d. PRINT:输出函数(正确)2. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)3. 实例分析:编写一个简单的输入输出程序(正确)七、汇编语言的杂项指令1. 杂项指令的概念(正确)2. 常用杂项指令及其功能a. NOP:无操作(正确)b. HLT:停止CPU运行(正确)c. CMC:翻转标志位(正确)d. ARPL:寄存器之间交换(正确)3. 实例分析:杂项指令的应用(正确)八、汇编语言的子程序调用1. 子程序调用的概念(正确)2. 子程序的定义与调用a. 定义子程序(正确)b. 调用子程序(正确)3. 子程序的返回(正确)4. 实例分析:子程序在汇编语言中的应用(正确)九、汇编语言的程序举例1. 实例一:计算两个数的和(正确)2. 实例二:字符串的复制(正确)3. 实例三:数制的转换(正确)4. 实例四:文件的读写(正确)十、汇编语言程序的调试与优化1. 调试工具的使用(正确)2. 调试方法与技巧(正确)3. 程序优化的概念(正确)4. 程序优化的方法与技巧(正确)汇编语言程序设计教案及习题答案教案章节:十一、汇编语言与操作系统1. 操作系统的概念2. 汇编语言在操作系统中的应用3. 实例分析:汇编语言编写简单的操作系统十二、汇编语言与设备驱动程序1. 设备驱动程序的概念2. 汇编语言在设备驱动程序开发中的应用3. 实例分析:汇编语言编写简单的设备驱动程序十三、汇编语言与嵌入式系统1. 嵌入式系统的概念2. 汇编语言在嵌入式系统中的应用3. 实例分析:汇编语言编写简单的嵌入式系统十四、汇编语言与汇编器的使用1. 汇编器的概念2. 汇编器的使用方法3. 实例分析:使用汇编器编写和调试汇编程序十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势2. 汇编语言在未来的应用领域3. 汇编语言学习的方法与建议习题答案:十一、汇编语言与操作系统1. 操作系统的概念(正确)2. 汇编语言在操作系统中的应用(正确)3. 实例分析:汇编语言编写简单的操作系统(正确)十二、汇编语言与设备驱动程序1. 设备驱动程序的概念(正确)2. 汇编语言在设备驱动程序开发中的应用(正确)3. 实例分析:汇编语言编写简单的设备驱动程序(正确)十三、汇编语言与嵌入式系统1. 嵌入式系统的概念(正确)2. 汇编语言在嵌入式系统中的应用(正确)3. 实例分析:汇编语言编写简单的嵌入式系统(正确)十四、汇编语言与汇编器的使用1. 汇编器的概念(正确)2. 汇编器的使用方法(正确)3. 实例分析:使用汇编器编写和调试汇编程序(正确)十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势(正确)2. 汇编语言在未来的应用领域(正确)3. 汇编语言学习的方法与建议(正确)重点和难点解析本文主要介绍了汇编语言程序设计的基础知识和应用领域,通过详细的章节安排,从汇编语言的基本概念、语法规则、程序设计步骤、常用指令及其功能、输入输出操作、杂项指令、子程序调用、程序举例、调试与优化等方面进行了深入讲解。
汇编语言程序设计试卷一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
① 无符号十进制数136② 带符号十进制数-120③ 压缩型BCD码十进制数88④ 8位二进制数-8的补码表示2.指令指针寄存器是()。
① IP② SP③ BP④ PSW3.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。
① 表示结果中含1的个数为偶数② 表示结果中含1的个数为奇数③ 表示该数为偶数④ 表示结果中低八位含1的个数为偶数4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。
① MOV AL,00H② AND AL,00H④ SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。
① AND② NEG③ NOT④ INC6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。
① MOV AX,BX② MOV BX,AX③ PUSH AXPOP BX④ MOV CX,AXMOV AX,BXMOV BX,CX7.设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。
① AH=01,AL=05② AH=1 AL=15③ AH=0 AL=0FH④ AH=0 AL=058.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为② OF=1,CF=1③ OF=0,CF=0④ OF=0,CF=19.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
① CX=0且ZF=0② CX=0且ZF=1③ CX=0或ZF=0④ CX=0或ZF=110.下面指令中,合理而有意义的指令是()。
① REP LODSB② REP SCASB③ REP CMPSB④ REP MOVSB11.在汇编语言程序中,对END语句的叙述正确的是()。
汇编语言程序设计参考答案A卷一、单项选择题(本大题共8小题,每小题2分,共16分)1.C2.B3.B4.A5.C6.A7.A8.C9.D 10.B二、名词解释(本大题共5小题,每小题4分,共20分)11.微处理器:也成中央处理器(CPU),是微型计算机的核心部件,包含运算器、控制器、寄存器组及总线接口等,负责对计算机系统各部件进行统一的协调和控制。
12.寻址方式:就是寻找操作数或操作数地址的方式,根据寻址方式可方便地访问各类操作数。
13.伪指令:是发送给汇编程序的命令,在汇编过程中由汇编程序进行处理,如定义数据、分配存储区、定义段及定义过程等。
14.中断源:指能引起中断的外部设备或内部原因。
15.汇编语言:是一种面向CPU指令系统的程序设计语言,采用指令助记符来表示操作码和操作数,用符号地址表示操作数地址。
三、简答题(本大题共4小题,每小题5分,共20分)16.微型计算机系统软件的主要特点是什么?计算机系统软件的主要特点是简化计算机操作,支持应用软件的运行并提供相关服务,通常包括操作系统、语言处理程序等。
17.什么是逻辑地址?他由哪两部分组成?计算机存储器中给每个逻辑段编址的地址称逻辑地址。
逻辑地址是在程序中使用的地址,他由段地址和偏移地址两部分构成。
18.一个完整的汇编源程序由那些逻辑段组成?各逻辑段的主要作用是什么?一般情况下汇编语言源程序应该由以下3个逻辑段组成:①数据段:用来在内存中建立一个适当容量的工作区,以存放常数,变量等程序需要对其进行操作的数据;②堆栈段:用来在内存中建立一个适当容量的堆栈区,以便在中断、子程序调用时使用;③代码段:包括了许多以符号表示的指令,其内容就是程序需要执行的具体操作。
19. DMA数据传送方式的特点是什么?DMA数据传送方式把外设与内存交换信息的操作与控制交给DMA控制器,简化了CPU对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。
汇编语言程序设计19春在线作业1-0005 IF条件汇编的意思是()
A:如求出表达式的值为0,则满足条件
B:求出表达式的值如不为0,则满足条件
C:在汇编程序的第一次扫描期间满足条件
D:在汇编程序的第二遍扫描期间满足条件
答案:B
某存储单元的物理地址是12345H,可以作为它的段地址有()A:2345H
B:12345H
C:12340H
D:1234H
答案:D
INT 1AH指令执行的结果高位字存在()中。
A:AX
B:BX
C:CX
D:DX
答案:D
MOV BL, [BX] 的寻址方式()
A:直接寻址
B:变址寻址
C:立即寻址
D:寄存器寻址
答案:D
MOV AX, 1234H
MOV CL, 4
ROL AX, CL ;执行完这些指令(AX)=()A:1234H
B:1243H
C:2341H
D:4321H
答案:C
BIOS中断类型显示器I/O的功能代号()。
大工19春《汇编语言程序设计》在线作业3
键盘I/O对应16H号中断。
T.对
F.错
正确答案:A
在汇编语言中,宏是源程序中的一段有独立功能的程序代码,只需要在源程序中定义一次就可以多次调用。
T.对
F.错
正确答案:A
MACRO和ENDM是不合法的关键字搭配。
T.对
F.错
正确答案:B
经宏定义定义后的指令就可以在源程序中调用,这种对宏指令的调用称为宏调用。
T.对
F.错
正确答案:A
LOCAL伪操作只能在宏定义内部使用,而且它必须是MACRO伪操作后的第一个语句。
T.对
F.错
正确答案:A
REPT和ENDM是一对不合法的伪操作。
T.对
F.错
正确答案:B。
大工19秋《汇编语言程序设计》在线测试3一、单选题(共 10 道试题,共 40 分。
)1. 阅读如下程序段:(1)ADRR DB XXH,XXH,……,XXH (2) NUM EQU $-ADRR (3)RETT DB ?(4)…(5)MOV CX,NUM (6)MOV BX,-1 (7)DON: (8)INC BX (9)CMP ADRR[BX],0 (10)LOOPZ DON (11)JNZ NEXT (12)MOV BL,OFFH (13)NEXT: (14)MOV RETT,BL (15)HLT结束后,该程序完成的功能是()。
A. 希尔排序算法B. 在以Adrr为起始地址的数组中查找第一个非0数据C. 在以Adrr为起始地址的数组中查找字符AD. 以上都不对正确答案:B2. MOV [BX],DL指令是将DX寄存器()地址送入BX中。
A. 低8位B. 高8位C. 低32位D. 高32位正确答案:A3. (1)FUNCTION MACRO P1,P2,P3(2)MOV AX,P1 (3)P2 P3,1 (4)ENDM 通过调用语句FUNCTION 101H,DEC,AX调用之后,AX寄存器中的内容为()。
A. 100HB. 99HC. 98HD. 101H正确答案:A4. 阅读下面的程序片段。
(1)MOV AX,723AH(2)MOV BX,0C86BH (3)SUB AL,BL (4)SBB AH,BH (5)XOR AL,01H (6)ADC AX,0执行该程序片段后:CF 等于()。
A. AB. BC. 0D. 1正确答案:C5. 阅读如下程序段,假设数组中所有数据均为0:(1)ADRR DB XXH,XXH,……,XXH (2) NUM EQU $-ADRR (3)RETT DB ?(4)…(5)MOV CX,NUM (6)MOV BX,-1 (7)DON: (8)INC BX (9)CMP ADRR[BX],0 (10)LOOPZ DON (11)JNZ NEXT (12)MOV BL,OFFH (13)NEXT: (14)MOV RETT,BL (15)HLT结束后,RETT字节单元中的内容是()。
学习中心:_______________________
专业:计算机应用技术__________________
年级:年春/秋季
学号:__________________________
学生:__________________________
题目_十进制转换十六进制程序设计____________________________________
1•谈谈你对本课程学习过程中的心得体会与建议?
时间过得真快,一学期的学习马上就要结束了,经过一个学期的学习,我也慢慢摸出了汇编学习的规律,特别感谢指导老师的耐心教导。
首先,学习这门语言时如果能联系上以前学过的其他高级语言的知识,则会起到良好的效果。
例如C语言程序的运行逻辑结构有顺序(按语句依次执行)、分支结构(IF…THEN…ELSE…),循环结构(FOR…NEXT)三种结构,也通过 C 语言了解并掌握了什么是子程序,什么是调用。
事实上,汇编语言中有关程序结构,子程序等等的知识都是跟C语言十分相似的,只是在编程时用到的语言不同:汇编语言完全面向机器,需要指明数据在寄存器、内存中的流向。
第二,学习汇编语言,首要问题是学习80X86指令系统。
如果能将指令系统中的各个助记符、格式等都能完全掌握并灵活运用,大部分工作就已经完成了。
指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。
如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。
还有一点十分重要。
和所有的程序设计语言一样,要学好汇编语言,实验是必不可少的环节。
我们深有体会:书上的程序都能看懂,基本原理也都明白,但是在自己亲手编写程序时,却无从下手,甚至连第一句该怎么写都不知道。
通过实验,可以在很大程度上加深印象。
在书上看程序,一切都是理所当然,十分顺利,而自己动手,才会真正发现自己的不足之处。
程序的编写在记事本中进行即可,掌握debug的使用对实验是有很大帮助的。
现在汇编语言的学课程已经告一段落了,学习过程中遇到的所有困难以及遗留的难点都需要我们在其余时间里逐步攻克,在打好基础的前提下,学习更加
专业的汇编知识。
以上便是我在学习汇编语言过程中所有的心得体会,我们会在不断的学习与实践中向着更深入的层面迈进。
2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。
《汇编语言程序设计》课程设计
注意:从以下5个题目中任选其一作答。
总贝只能使用汇编语言进行编制,不能选用C/C++等高级语言作业提交:大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东101410013979浙江台州奥鹏学习中心[1]VIP )
以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。
如下图所示。
注意事项:
独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计!
题目一:进制转换程序要求:(1)撰写一份word文档,里面包括(算法思路、算法
程序框图、主要函数代码、使用指令具体含义)章节
(2)算法思路:比如可设计十进制转化十六进制的算法,简
单介绍该算法的基本思想,100字左右即可。
(3)算法程序框图:绘制流程图或原理图,从算法的开始到
结束的程序框图。
(4)主要函数代码:列出算法的具体代码。
(5)列出算法中使用指令的含义,比如解释MOV指令的含
义,ADD指令的含义,至少撰写十个指令。
总贝只能使用汇编语言进行编制,不能选用C/C++等高级语言!
答:算法思路
采用一个子程序DECIBIN实现从键盘取得十进制数并把它转换为二进制数;另一个子程序BINIHEX把此二进制数以十六进制数的形式在屏幕上显示出来。
为避免屏幕上的重叠,另外用CRLF子程序取得回车和换行效果。
各个子程序之间用BX寄存器来传送信息。
在过
程DECIBIN中取得的输入数据转换为二进制数后保存在BX寄存器中,而过程BINIHEX需要把BX寄存器中的数用十六进制形式显示出来。
二、算法程序框图
开始
调用DECIBIN
调用CRLF
调用BINIHEX 调用CRLF 用十六进制数形式表达显示BX中的数从键盘取得十进制数,保存在BX中显示回车和换行
三、主要函数代码程序(指令含义在代码后面):DECIHEX SEGMENT ; 定义代码段
ASSUME CS:DECIHEX
MAIN PROC FAR ; 主程序
REPEAT: CALL DECIBIN ; 调用子程序输入十进制数CALL CRLF ;显示回车、换行
CALL BINIHEX ;以十六进制数输出
CALL CRLF ;显示回车、换行
JMP REPEAT ; 转REPEA T,继续
MAIN ENDP
DECIBIN PROC NEAR ; 十进制数输入子程序
MOV BX, 0 ; BX 保存输入数
NEWCHAR: MOV AH, 1
INT 21H ;调用DOS功能输入字符
SUB AL, 30H ; 转为数0-9
JB EXIT ;小于0,不是数字
CMP AL, 9D ;与9 比较
JA EXIT ;大于,不是数字
CBW ; AL=>AX
XCHG AX, BX ; AX、BX 互换
MOV CX, 10D ; CX=10
MUL CX ; AX=AX*CX
ADD BX, AX ; BX 为前面输入的结果
JMP NEWCHAR
EXIT: RET
DECIBIN ENDP
BINIHEX PROC NEAR
MOV CH, 4 ; CH 循环次数
ROTA TE: MOV CL, 4 ;每次循环输出一位十六进制数ROL BX, CL ;即移位4个二进制位
MOV AL, BL ; AL=BL
AND AL, 0FH ; 取低4 位
ADD AL, 30H ; 转变为ASCII 码
CMP AL, 3AH ;是否为'0'9'
JL PRINTIT ;是转PRINTIT
ADD AL, 7H ; 否转为’A''F'
PRINTIT: MOV DL, AL ; DL= 输出字符
MOV AH, 2
INT 21H ;调用DOS中断,显示字符
DEC CH
JNZ ROTA TE ;没循环结束,继续RET ;返回
BINIHEX ENDP
CRLF PROC NEAR ; 输出回车、换行MOV DL, 0DH
MOV AH, 2
INT 21H ;输出回车
MOV DL, 0AH
MOV AH, 2
INT 21H ;输出换行
RET
CRLF ENDP
DECIHEX ENDS
END MAIN。