大工19秋《汇编语言程序设计》大作业题目及要求

合集下载

大工19秋《汇编语言程序设计》在线作业3满分答卷

大工19秋《汇编语言程序设计》在线作业3满分答卷

大工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。

大工19春《汇编语言程序设计》在线作业2

大工19春《汇编语言程序设计》在线作业2

(单选题)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段寄存器指明该单元的段基值时,需要使用哪一个偏移量才能正确访问该单元()。

汇编语言程序设计题目以及答案

汇编语言程序设计题目以及答案

汇编语言程序设计题目以及答案[P1] 汇编语言程序设计题目以及答案汇编语言是一种底层计算机语言,它直接使用机器指令来编写程序。

本文将介绍一些汇编语言程序设计的题目,并提供相应的答案。

通过这些题目和答案的学习,读者可以更好地理解和掌握汇编语言程序设计的基本概念和技巧。

[题目一] 计算两个数的和要求:编写汇编程序,计算两个给定的整数的和,并将结果存储在指定的内存位置中。

答案:```assemblysection .datanum1 dd 10 ; 第一个整数num2 dd 20 ; 第二个整数result dd 0 ; 结果section .textglobal _start_start:mov eax, [num1] ; 将num1值存入寄存器eaxadd eax, [num2] ; 将num2值与eax寄存器中的值相加mov [result], eax ; 将结果存储到result变量mov eax, 1 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, result ; 输出的数据mov edx, 4 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目二] 字符串反转要求:编写汇编程序,将一个给定的字符串反转,并将结果存储在指定的内存位置中。

答案:```assemblysection .datastr db 'Hello', 0 ; 待反转的字符串section .bssreverse resb 6 ; 存储反转后的字符串section .textglobal _start_start:mov esi, str ; esi指向待反转的字符串mov edi, reverse ; edi指向存储反转结果的位置 mov ecx, 5 ; 字符串长度为5mov ebx, 1 ; ebx用于计数reverse_loop:mov al, [esi+ebx]mov [edi-ebx+5], alinc ebxloop reverse_loopmov byte [edi+5], 0 ; 在末尾添加字符串结束符 mov eax, 4 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, reverse ; 输出的数据mov edx, 6 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目三] 求平均数要求:编写汇编程序,计算给定的一组整数的平均数,并将结果存储在指定的内存位置中。

汇编语言程序设计教案及习题答案

汇编语言程序设计教案及习题答案

汇编语言程序设计教案及习题答案教案章节:一、汇编语言简介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.谈谈你对本课程学习过程中的心得体会与建议?汇编语言程序设计是我们计算机专科的一门专业课。

本课程是面向机器的一门编程语言课。

在对汇编语言的学习过程中,可以对计算机组成原理有更深入的了解,同时掌握汇编语言对于某些硬件编程比如单片机开发和嵌入式系统的开发应用也是必不可少的。

汇编语言相比于其他高级语言明显的优点就是运行速度快,而缺点就是需要兼顾机器本身的硬件结构特点进行编程,因此学习本课程要多实践多思考。

通过本课程的学习可以对汇编语言有一个整体的把握和认识。

当我刚开始选择这个题目是因为课本上有一个相近的代码转换,所以感觉这个题目应该很好写。

可是等到真正动手的时候就感到了困难。

首先是对字符串的输入输出的处理,解决不了就改成了字母大小写转换是每次只输入一个字母,然后根据其大小写转换,如大写就转换成小写,否则反之。

然而在随后的进制转换中用遇到了同样的问题,发现这是一个不能不解决的问题,随后查阅了资料才解决。

随后实在数值转换过程中对模块的设计上又出现了问题。

最初的构想是设计六个模块分别对应相应的数值转换功能。

可是在三个写好以后发现了下面要写的代码有很多重复的地方,于是就把这些重复的代码定义成了子函数来使用然后发现将程序按照输入、输出的不同来分模块,以BX作为连接,比原来的程序更为简洁,逻辑上也更加清楚,有种豁然开朗的感觉。

在改进程序的过程中感到非常有成就感。

在编写代码的过程中让我充分感受到了不同编程语言之间的差别。

对与高级语言来说或许是很简单的一个程序或者只需要调用已有的函数库,可是对于汇编来说却要写上几十行甚至更多的代码。

可是更加深刻的了解了寄存器、存储器之间的数据流向,因为每个考虑不周都会导致一大堆的错误出现,常常令人感到一种无力感,想要放弃。

当程序一步步接近完成,看着子函数一个个都运行成功,再组合到一起,那种喜悦是无与伦比,之前所受到的苦楚又是那么的微不足道。

汇编语言程序设计期末大作业

汇编语言程序设计期末大作业

汇编语言程序设计期末大作业一、引言汇编语言是一种低级语言,直接操作计算机硬件。

虽然汇编语言相对于高级语言来说更加底层,编写汇编语言程序可能需要更多的代码和时间,但其执行效率和对硬件的控制程度是高级语言无法比拟的。

本期末大作业旨在通过设计并编写一个汇编语言程序,巩固并应用所学的汇编语言知识。

二、设计目标本次大作业的设计目标为实现一个简单的文件加密和解密程序。

用户可以通过命令行指定需要加密或解密的文件,以及密钥。

程序将读取文件的数据,使用密钥进行加密或解密操作,并将结果保存到相应的加密或解密文件中。

三、功能设计1.加密文件:用户通过命令行参数指定待加密的文件和密钥,程序读取文件的数据,使用密钥对数据进行加密,并将结果保存到加密文件中。

加密算法可以自定,但必须保证加密后的文件无法通过简单方法还原。

2.解密文件:用户通过命令行参数指定待解密的文件和密钥,程序读取文件的数据,使用密钥对数据进行解密,并将结果保存到解密文件中。

解密算法应与加密算法对应,能够正确还原加密的文件。

四、实现思路1.程序入口:使用指令跳转和条件判断实现程序的命令行参数解析,根据用户输入的参数确定是进行加密还是解密操作。

2.文件读取和写入:使用相应的系统调用实现对文件的读取和写入操作。

通过指定的文件路径打开文件并读取文件的数据,然后将加密或解密后的结果写入相应的加密或解密文件。

3.密钥和数据处理:将读取到的文件数据与密钥进行处理(加密或解密),处理的方式可以是异或运算、位移操作等。

具体实现可以参考课程中学习到的汇编指令和技巧。

将处理后的数据写入加密或解密文件中。

五、编程与调试在开始编写程序之前,可以先分析并确定所需的汇编指令和算法。

在编写过程中,要注重代码的可读性和可维护性,使用注释对关键代码进行解释和说明。

编码完成后,应进行逐条指令的调试,可以使用调试器进行单步调试,查看代码的执行情况和计算结果是否正确。

六、参考资料1.操作系统与实验教程2.汇编语言程序设计教材3.汇编语言在线学习资源七、总结通过本次汇编语言程序设计期末大作业,我深入理解了汇编语言的编程思想和机器指令的执行过程。

大工19秋《汇编语言程序设计》在线测试3 辅导答案

大工19秋《汇编语言程序设计》在线测试3 辅导答案

大工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字节单元中的内容是()。

《汇编语言程序设计》试题(A)

《汇编语言程序设计》试题(A)

《汇编语言程序设计》试题学号:姓名:一、单项选择题(本大题共5小题,每小题2分,共20分)1.CPU要访问的某一存储单元的实际地址称()A.段地址B.偏移地址C.物理地址D.逻辑地址2.执行后使BX=0的指令是()A. XOR BX,BXB. OR BX,BXC. AND BX,BXD. NOT BX3.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是()A. CX≠0且ZF=1B. CX≠0且ZF=0C. CX≠0或ZF=1D. CX≠0或ZF=04.完成对CL寄存器的内容乘以4的正确操作是()A. ROL CL,1B. MUL 4C. SHL CL,1D. MOV CL,2ROL CL,1 SHL CL,15.下面各传送指令中,正确的是()A. MOV [DI],[SI]B. MOV[DX+DI],ALC. MOV WORD PTR [BX],0100HD. MOV AL,BX6.对AND,OR,XOR,NOT四条逻辑运算指令,下面正确的是()A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C.指令AND AX,OFH执行后,分离出AL低四位D.NOT AX,执行后,将AX清07.在执行下列指令时,数据段的段寄存器是()A. SSB. DSC. DXD. CS8.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是()A. ADD BH,01HB. OR BH,01HC. XOR BH,01HD. TESTBH,01H9.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为()A. ZF=1B. ZF=0C. SF=1D. SF=010.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是()A. JNC LOP1B. JA LOP1C. JC LOP1D. JGE LOP1二、填空题(本大题共10空,每空2分,共20分)1.十六进制数0F8H表示的十进制正数为________,表示的十进制负数为________。

西安交通大学19年3月课程考试《汇编语言程序设计》作业考核试题答案辅导资料

西安交通大学19年3月课程考试《汇编语言程序设计》作业考核试题答案辅导资料

西安交通大学19年3月课程考试《汇编语言程序设计》作业考核试题
1、C
2、D
3、D
4、A
5、B
一、单选题共30题,60分
1、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是()
AJLE
BJNL
CJNLE
DJL
【答案】正确是:C
2、执行下面指令序列后,结果是()。

MOV AL,07FH CBW
AAX=0F7FH
BAX=87FH
CAX=0FF7FH
DAX=007FH
【答案】正确是:D
3、下面指令中影响状态位CF的指令是( )
AINC AX
BDEC AX
CNOT AX
DNEG AX
【答案】正确是:D
4、下列指令中,不影响标志位的指令是( )
ASUB BX,BX
BROR AL,1
CJNC Label
DINT n
【答案】正确是:A
5、段内直接转移指令采用的寻址方式是:()
A直接寻址
B相对寻址
C绝对寻址
D间接寻址
【答案】正确是:B
6、8086汇编语言中,BCD码的运算是借用二进制数的运算指令并加以调整来实现的。

其中非压缩型BCD码减法的调整指令为___
AAAA
BDAA
CAAS
DDAS
【答案】正确是:C
7、MOV AX,COUNT[SI]的源操作数在___
ACS段
BDS段
CSS段。

大工19秋《汇编语言程序设计》在线作业1[学习资料]

大工19秋《汇编语言程序设计》在线作业1[学习资料]

【奥鹏大连理工】大工19秋《汇编语言程序设计》在线作业1
试卷总分:100 得分:100
一、单选题 (共 10 道试题,共 50 分)
1.设(SP)=100H,(AX)=0FFFFH 按顺序执行下列语句后(1)STC(2)PUSH AX(3)ADC AX,0(4)PUSH AX(5)POP BX,(BX)等于()。

A.F
B.2
C.1
D.0
[参考提示:请参看课本知识,回答本题]
答案解析:D
2.设(SP)=100H,(AX)=0FFFFH 按顺序执行下列语句后(1)STC(2)PUSH AX(3)ADC AX,0(4)PUSH AX(5)POP BX,(SP)等于()。

A.0FFH
B.0FEH
C.0EEH
D.00FA
[参考提示:请参看课本知识,回答本题]
答案解析:B
3.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。

A.表示该数为偶数
B.表示结果中含2的个数为偶数
C.表示结果中含1的个数为奇数
D.表示结果中低八位含1的个数为偶数
[参考提示:请参看课本知识,回答本题]
答案解析:D
4.下列对CL寄存器的内容乘以4的正确操作是()。

A.SHL CL,1
B.ROLS CL,4
C.MUL 4
D.MOV CL,2
[参考提示:请参看课本知识,回答本题]
答案解析:A
5.下面各传送指令中,错误的是()。

A.MOV DS,AX
B.MOV [DI],[SI]
C.MOV AX,BX
D.MOV AL,'A'。

汇编语言程序设计期末大作业

汇编语言程序设计期末大作业

汇编语言程序设计期末大作业作为汇编语言程序设计的期末大作业,我选择了一个简单的任务,即编写一个能够对一组学生成绩进行排序的程序。

为了完成这个任务,我首先定义了一个存储学生数据的数组,每个学生的数据包括学生姓名和学生成绩。

然后,我使用冒泡排序算法对学生成绩进行排序。

冒泡排序算法的基本思想是从数组的第一个元素开始,依次比较相邻的两个元素,如果它们的顺序错误,则交换它们的位置。

这样一轮比较下来,最大的元素就会被移到数组的最后一个位置。

然后,我们对剩下的元素再次进行相同的比较和交换,直到整个数组都被排序。

在我的程序中,我使用了8086汇编语言编写了一个排序子程序。

这个子程序接受一个指向学生数据数组的指针和数组的长度作为输入,并使用冒泡排序算法对数组进行排序。

在排序过程中,我使用了一个内循环和一个外循环来实现比较和交换的操作。

内循环用于比较和交换数组中相邻的两个元素,而外循环用于控制内循环的次数,以保证整个数组都被排序。

在主程序中,我首先定义了一个存储学生数据的数组,并初始化了数组中的元素。

然后,我调用排序子程序,并传递数组的指针和长度作为参数。

排序子程序完成后,我打印排序后的学生数据,以展示程序的结果。

通过编写这个程序,我不仅复习了汇编语言的基本知识和技巧,还学会了使用冒泡排序算法对数据进行排序。

我发现在汇编语言中实现算法可能会比高级语言更复杂和繁琐,但它也提供了更大的灵活性和控制力。

此外,我通过这个项目还加深了对指针和数组的理解和应用,并提高了编写结构化程序的能力。

总的来说,这个汇编语言程序设计的期末大作业让我在实践中巩固了所学的知识,培养了解决问题和编写程序的能力。

通过不断地尝试和调试,我成功地实现了一个能够对一组学生成绩进行排序的程序。

这个过程对我个人的成长和学习是非常有意义的。

汇编语言程序设计习题及答案

汇编语言程序设计习题及答案

汇编语言程序设计习题及答案汇编语言程序设计习题及答案汇编语言是一种底层的计算机语言,它直接操作计算机的硬件资源。

虽然在现代计算机编程中,高级语言如C、Java等更为常见,但了解汇编语言的基本原理和编程技巧对于理解计算机底层工作原理和进行性能优化非常重要。

本文将介绍一些汇编语言程序设计的习题及其答案,帮助读者巩固和提升汇编语言编程能力。

一、基础习题1. 编写一个汇编程序,将存储器中的某个字节的值加1,并将结果存回原位置。

答案:```assemblyMOV AL, [地址]INC ALMOV [地址], AL```2. 编写一个汇编程序,计算存储器中一个数组的和,并将结果存放在指定的寄存器中。

答案:```assemblyMOV CX, 数组长度MOV BX, 数组首地址MOV AX, 0LOOP_START:ADD AX, [BX]ADD BX, 2LOOP LOOP_START```二、进阶习题1. 编写一个汇编程序,实现字符串的逆序输出。

答案:```assemblyMOV SI, 字符串首地址MOV DI, 字符串尾地址MOV CX, 字符串长度DEC CXREVERSE:MOV AL, [SI]MOV AH, [DI]MOV [DI], ALMOV [SI], AHINC SIDEC DILOOP REVERSE```2. 编写一个汇编程序,实现两个16位无符号整数的相乘,并将结果存放在指定的寄存器中。

答案:```assemblyMOV AX, 第一个数MOV BX, 第二个数MUL BX```三、挑战习题1. 编写一个汇编程序,实现一个简单的计算器,支持加法、减法、乘法和除法运算。

答案:```assemblyREAD_INPUT:; 读取用户输入; ...PARSE_INPUT:; 解析用户输入,获取操作数和运算符; ...CALCULATE:; 根据运算符进行相应的计算; ...DISPLAY_RESULT:; 将计算结果显示给用户; ...LOOP:; 循环执行计算器程序; ...```2. 编写一个汇编程序,实现一个简单的迷宫游戏,玩家通过键盘控制角色在迷宫中移动,并找到出口。

【网络教育】大工19春《汇编语言程序设计》在线作业1 100分答案

【网络教育】大工19春《汇编语言程序设计》在线作业1 100分答案

【奥鹏】大工19春《汇编语言程序设计》在线作业1 试卷满分:100 试卷得分:100
一、单选题 (共 10 道试题,共 50 分)
1.对计算机的软件、硬件进行管理的是()的功能。

[A.]操作系统
[B.]数据库管理系统
[C.]编译器
[D.]用户程序
[阅读以上试题,分析作答]
-正确答案-:A
2.以下有关运算器运算功能的描述,()是正确的。

[A.]只做加法
[B.]只做算术运算
[C.]既做算术运算又做逻辑运算
[D.]只做逻辑运算
[阅读以上试题,分析作答]
-正确答案-:C
3.一个完整的计算机系统应包括()。

[A.]运算器、存储器、控制器
[B.]外部设备和主机
[C.]主机和应用程序
[D.]配套的硬件和软件系统
[阅读以上试题,分析作答]
-正确答案-:D
4.运算器虽有许多部件组成,但核心部分是()。

[A.]数据总线
[B.]算术逻辑运算单元
[C.]cache
[D.]CPU和寄存器
[阅读以上试题,分析作答]
-正确答案-:B
5.在计算机系统中,存储器是记忆设备,它主要用来()。

[A.]存放数据
[B.]存放程序
[C.]存放数据和程序
[D.]存放微程序。

汇编语言程序设计期末大作业。教学内容

汇编语言程序设计期末大作业。教学内容

汇编语言程序设计期末大作业。

汇编语言程序设计期末大作业:编写一完整的汇编语言源程序,实现从键盘输入一个班(不少于10人)的学生记录(学号:8位数字、姓名:不多余10个英文字符,语文:0-100的整数、数学:0-100的整数、英语:0-100的整数)后,(1)将输入的记录保存在C盘根目录下名为stuscore.dat的文件中;(2)按照各科成绩总分先高后低的顺序输出全部学生记录和排名顺序;(3)输出总分高于班平均总分的全部学生记录。

要求:元月4日前提交一份纸质报告(班长统一收齐)。

大作业格式:1.标题:汇编语言程序设计期末大作业2.作业题目:(上述)3.算法分析(流程图)4.实现代码(必须含注释)5.实验结果(汇编、连接、运行的截图)6.总结代码实现student struct ;定义结构Snumber db 11,0,11 dup(?)Sname db 11,0,11 dup(?)English db 4,0, 4 dup(?)Chinese db 4,0, 4 dup(?)Math db 4,0, 4 dup(?)Sum db 4,0, 4 dup(?)student ends;数据段data segmentmessMenu db '----------------The Homework of Assembler-----------------$'messMenu1 db '----------Name:TU LIN No:8000110028--------------$'messNext db '--------------------------------------------------------------------------------$'messName db 'Please input the student name(<11):$'messNum db 'Please input the student number(<11):$'messEnglish db 'Please input the English score:$'messChinese db 'Please input the Chinese score:$'messMath db 'Please input the Math score:$'mess1 db 'name:$'mess2 db 'number:$'mess3 db 'English:$'mess4 db 'Chinese:$'mess5 db 'Math:$'messSumScore db 'SumScore:$'MessTab db 09,'$' ;Tab 用于排列对齐StudAddress dw 10 dup(?) ;存各学生的偏移地址EnglishScore db 10 dup(?) ;存学生英语成绩的十进制数ChineseScore db 10 dup(?) ;存学生语文成绩的十进制数MathScore db 10 dup(?) ;存学生数学成绩的十进制数Average dw ?Buf db 6 dup(?)SumScore dw 10 dup(?) ;用于记录每个学生总分NumbersOfStudent db 0 Stu student 10 dup(<>)SumRank db 0, 1, 2, 3, 4, 5, 6, 7, 8, 9FName db 'C:\StuScore.dat', 0;文件FileHandle dw ?;文件句柄EndOfFile dw 0ffhOtherLine db 0ah, 0dh, '$'FileSpace db " "data ends;堆栈段stack segmentdb 100h dup(?)stack ends;代码段code segmentassume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,ax ;将数据段首地址传给dsmov ax,stackmov ss,ax ;将堆栈段首地址传给ssmov sp,0call Endlinelea dx,messMenumov ah,09hint 21hcall Endlinelea dx,messMenu1mov ah,09hint 21hcall Endlinelea si,Stu ;取student的首地址给siInputStu:call GetStudentlea dx,messNextmov ah,09hint 21hadd si,50loop InputStu ;输出循环结束lea si,Stucall GetEnglishScorecall GetChineseScorecall GetMathScorecall Stop ;程序运行停止一下,按回车键继续执行call Writetofilecall stopcall SumAveragecall GetSumcall GetAddresscall SortStudentcall Stop ;程序运行暂停一下,按回车键,继续执行call ShowStumov ah,4chint 21h;============================================================;子程序名:GetStudent;功能:录入学生信息;============================================================ GetStudent proc nearpush sipush dxpush axpush cx ;子程序保护现场lea dx,messNamemov ah,9int 21hlea dx,[si].Snameint 21hcall Endlinelea dx,messNummov ah,9int 21hlea dx,[si].Snumbermov ah,0Ahint 21hcall Endlinelea dx,messEnglishmov ah,9int 21hlea dx,[si].Englishmov ah,0Ahint 21hcall Endlinelea dx,messChinesemov ah,9int 21hlea dx,[si].Chinesemov ah,0Ahint 21hcall Endlinelea dx,messMathmov ah,9int 21hlea dx,[si].Mathmov ah,0Ahint 21hcall Endlinepop cxpop axpop dxpop siretGetStudent endp;============================================================ ;子程序名:TureShow;功能辅助子程序ShowStu,用于输出字符串;============================================================ TureShow proc nearpush dx ;保护相关寄存器push cxpush bxpush axmov bx,dx ;将bx指向缓存区的地址xor cx,cxmov cl,[bx+1] ;cl存放了缓存区录入的字符数LoopTS:mov dl,[bx+2] ;从第三个偏移地址开始显示mov ah,2 ;调用单个字符输出中断int 21hinc bxloop LoopTSpop axpop bxpop cxpop dxretTureShow endp;============================================================ ;子程序名:ShowStu;功能:显示学生信息记录;============================================================ ShowStu proc nearpush cxpush axpush dxpush sipush di ;保护现场call Endlinelea di,SumScorelea bx,StudAddressmov cx,10Loop1: mov si,word ptr[bx]lea dx,mess1mov ah,09hlea dx,[si].Snamecall TureShowcall MessTb ;输出1个Tab 用于排序对齐lea dx,mess2mov ah,09hint 21hlea dx,[si].Snumbercall TureShowcall MessTb ;输出1个Tab 用于排序对齐lea dx,mess3mov ah,09hint 21hlea dx,[si].Englishcall TureShowcall MessTb ;输出1个Tab 用于排序对齐lea dx,mess4mov ah,09hint 21hlea dx,[si].Chinesecall TureShowcall MessTb ;输出1个Tab 用于排序对齐lea dx,mess5mov ah,09hint 21hlea dx,[si].Mathcall TureShowcall MessTb ;输出1个Tab 用于排序对齐lea dx,messSumScoremov ah,09hint 21hmov ax,[di]call Outputcall Endlineadd bx,2add di,2loop Loop1lea dx,messNextmov ah,09hpop dipop sipop dxpop axpop cxretShowStu endp;=============================================================;子程序名:Endline;功能:回车换行;============================================================= Endline proc nearpush ax ;保护相关寄存器push dxpush cxmov ah,2 ;回车mov dl,0ahint 21hmov ah,2 ;换行mov dl,0dhint 21hpop cxpop dxpop axretEndline endp;=============================================================;子程序名GetEnglishScores:;功能:将得到的指定个学生的分数以十进制保存到EnglishScore缓冲区中;============================================================= GetEnglishScore proc nearpush di ;保护相关寄存器push sipush dxpush cxpush bxpush axpush bplea si,Stu ;使si指向第一个学生的偏移地lea bp,EnglishScore ;使bp指向以十进制存学生分数的地址mov cx,10 ;共有指定个学生LoopScores0:push cx ;保护外循环的CX值lea bx,[si].English ;使bx指向学生字符分数缓冲区xor di,dixor cx,cxmov cl,[bx+1] ;学生字符分数缓冲区的字符数即使循环次数LoopScore0:mov al,[bx+2] ;从第三个偏移地址开始sub al,30h ;得到一个十进制值xor ah,ahxchg ax,di ;使其暂存到di,且将高位di的值乘10push si ;保护寄存器的原值push dxmov si,10mul si ;将si乘10,乘积低位保存在axpop dxpop sixchg ax,di ;将原来di中低位的值与高位的值ax交换回来add di,ax ;至此又录入一位十进制数inc bxloop LoopScore0mov ax,dimov ds:[bp],al ;将得到的十进制分数存入保存十进制分数缓冲区EnglishScore中add si,50 ;使di指向下一个学生的偏移地址inc bp ;使bp指向下一个保存十进制分数缓冲区的下一个单元,以保存下一个学生的分数pop cx ;弹出外循环的CX值loop LoopScores0pop bppop axpop bxpop cxpop dxpop sipop diretGetEnglishScore endp;=============================================================;子程序名GetChineseScore:;功能:将得到的指定个学生的分数以十进制保存到ChineseScore缓冲区中;============================================================= GetChineseScore proc nearpush di ;保护相关寄存器push sipush dxpush cxpush bxpush axpush bplea si,Stu ;使di指向第一个学生的偏移地lea bp,ChineseScore ;使bp指向以十进制存学生分数的地址mov cx,10 ;共有指定个学生LoopScores1:push cx ;保护外循环的CX值lea bx,[si].Chinese ;使bx指向学生字符分数缓冲区xor di,dixor cx,cxmov cl,[bx+1] ;学生字符分数缓冲区的字符数即使循环次数LoopScore1:mov al,[bx+2] ;从第三个偏移地址开始sub al,30h ;得到一个十进制值xor ah,ahxchg ax,di ;使其暂存到si,且将高位si的值乘10push si ;保护寄存器的原值push dxmov si,10mul si ;将si乘10,乘积低位保存在axpop dxpop sixchg ax,di ;将原来si中低位的值与高位的值ax交换回来add di,ax ;至此又录入一位十进制数inc bxloop LoopScore1mov ax,dimov ds:[bp],al ;将得到的十进制分数存入保存十进制分数缓冲区ChineseScore中add si,50 ;使di指向下一个学生的偏移地址inc bp ;使bp指向下一个保存十进制分数缓冲区的下一个单元,以保存下一个学生的分数pop cx ;弹出外循环的CX值loop LoopScores1pop bppop axpop bxpop cxpop dxpop sipop diretGetChineseScore endp;=============================================================;子程序名GetMathScore:;功能:将得到的指定个学生的数学分数以十进制保存到MathScore缓冲区中;============================================================= GetMathScore proc nearpush di ;保护相关寄存器push sipush dxpush cxpush bxpush axpush bplea si,Stu ;使di指向第一个学生的偏移地lea bp,MathScore ;使bp指向以十进制存学生分数的地址mov cx,10 ;共有指定个学生LoopScores2:push cx ;保护外循环的CX值lea bx,[si].Math ;使bx指向学生字符分数缓冲区xor di,dixor cx,cxmov cl,[bx+1] ;学生字符分数缓冲区的字符数即使循环次数LoopScore2:mov al,[bx+2] ;从第三个偏移地址开始sub al,30h ;得到一个十进制值xor ah,ahxchg ax,di ;使其暂存到si,且将高位si的值乘10push si ;保护寄存器的原值push dxmov si,10mul si ;将si乘10,乘积低位保存在axpop dxpop sixchg ax,di ;将原来si中低位的值与高位的值ax交换回来add di,ax ;至此又录入一位十进制数inc bxloop LoopScore2mov ax,dimov ds:[bp],al ;将得到的十进制分数存入保存十进制分数缓冲区MathScore中add si,50 ;使di指向下一个学生的偏移地址inc bp ;使bp指向下一个保存十进制分数缓冲区的下一个单元,以保存下一个学生的分数pop cx ;弹出外循环的CX值loop LoopScores2pop bppop axpop bxpop cxpop dxpop sipop diretGetMathScore endp;==============================================================;子程序名:Writetofile;功能:用于创建文件并且存储学生信息;==============================================================Buildfile :push axpush cxpush dxmov ah, 3chmov cx, 00lea dx, FNameint 21hjc CreateFileErrormov FileHandle, axjmp CreateFileOk CreateFileError:mov ah, 09hmov dx, offset CreateFileErrorint 21hCreateFileOk:pop dxpop cxpop axretWriteToFile:push axpush bxpush cxpush dxpush dipush silea di, [si].SNamemov dx, diadd dx, 2mov cl, [di+1]mov ch, 0mov bx,FileHandlemov ah, 40hint 21hjc WriteFileErrorcall WriteSpacelea di, [si].SNumbermov dx, diadd dx, 2mov ch, 0mov bx, FileHandlemov ah, 40hint 21hjc WriteFileErrorcall WriteSpacelea di, [si].ChineseScore mov dx, diadd dx, 2mov cl, [di+1]mov ch, 0mov bx, FileHandlemov ah, 40hint 21hjc WriteFileErrorcall WriteSpacelea di, [si].MathScore mov dx, diadd dx, 2mov cl, [di+1]mov ch, 0mov bx, FileHandlemov ah, 40hint 21hjc WriteFileErrorcall WriteSpacelea di, [si].EnglishScore mov dx, diadd dx, 2mov cl, [di+1]mov ch, 0mov bx, FileHandlemov ah, 40hint 21hjc WriteFileErrorcall WriteSpacelea di, [si].SumScore mov dx, diadd dx, 2mov ch, 0mov bx, FileHandlemov ah, 40hint 21hjc WriteFileErrorcall WriteEndLinejmp WriteFileOkWriteFileError:lea dx,WriteFileErrormov ah, 09hint 21hWriteFileOk:pop sipop dipop dxpop cxpop bxpop axret;******************************************************************** WriteSpace:mov cx, 2lea dx, FileSpacemov bx, FileHandlemov ah, 40hint 21hret;******************************************************************** WriteEndLine:mov cx, 2lea dx, OtherLinemov bx, FileHandlemov ah, 40hint 21hretCloseFile:mov ah, 40hmov bx, FileHandlemov cx, 2lea dx, EndOfFileint 21hmov ah, 3ehmov bx, FileHandleint 21hret;============================================================== ;子程序名:GetSum;功能:用于计算出每个学生的各科成绩的总分;============================================================== GetSum proc nearpush axpush dipush sipush bxpush cxlea di,EnglishScorelea si,SumScoremov cx,10mov al,0LoopSum:mov ah,0mov al,[di]mov word ptr[si],axinc diadd si,2loop LoopSumlea di,ChineseScorelea si,SumScoremov cx,10mov al,0LoopSum1:mov ah,0mov al,[di]add word ptr[si],axinc diadd si,2loop LoopSum1lea di,MathScorelea si,SumScoremov cx,10mov al,0LoopSum2:mov ah,0mov al,[di]add word ptr[si],axinc diadd si,2loop LoopSum2pop cxpop bxpop sipop dipop axretGetSum endp;============================================================== ;子程序名:SumAverage;功能:用于计算出平均成绩,并输出总分高于平均分的学生记录;============================================================== SumAverage proc nearpush axpush bxpush cxpush dxpush simov cl, NumbersOfStudentmov ch, 0mov bx, cxmov ax, 0mov dx, 0mov si, offset SumScoreAverageLoop:add ax, word ptr [si]adc dx, 0add si, 2loop AverageLoopdiv bxmov Average, ax;输出高于平均成绩的同学mov dx, offset ShowBigThanAveragemov ah, 09hint 21hmov cl, SNumbermov ch, 0mov di, 0mov si, 0ShowBigThanAverage:mov ax, SumScore[si]cmp ax, Averagejl ShowBigOkmov dl, SumRank[di]mov al, type studentmul dlmov bx, axcall Outputadd si, 2inc diloop ShowBigThanAverageShowBigOk:mov dx, offset OtherLinemov ah, 09hint 21hpop sipop dxpop cxpop bxpop axretSumAverage endp;============================================================= ;子程序名:Output;功能:将ax中的二进制以十进制形式输出;============================================================== Output proc nearpush dipush bxpush axpush dxlea di,Bufadd di,6mov byte ptr[di],'$'mov bx,10CHANGE:dec dimov dx,0div bxadd dl,30hmov byte ptr[di],dlcmp ax,0jnz CHANGEmov dx,dimov ah,09hint 21hpop dxpop axpop bxpop diretOutput endp;=============================================================;子程序名:GetAddress;功能:将指定个学生的偏移地址顺序保存到StudAddress;============================================================= GetAddress proc nearpush si ;保护相关寄存器push bxpush cxlea si,Stu ;使di指向第一个学生的偏移地址lea bx,StudAddress ;使bx指向存学生偏移地址的缓冲区mov cx,10 ;共有指定个学生LoopAdd:mov word ptr[bx],word ptr siadd bx,2 ;使bx指向存学生偏移地址的缓冲区的下一个地址add si,50 ;使di指向下一个学的生偏移地址loop LoopAddpop cxpop bxpop diretGetAddress endp;=============================================================;子程序名:SortStudent;功能:根据学生分数进行排序;用冒泡法根据学生分数对分数从大到小排序;同时将对应的偏移地址进行排序;============================================================= SortStudent proc nearpush dxpush cxpush bxpush axpush dipush simov cx,10dec cxLoopChange0:push cx ;保护外循环的CX值lea bx,SumScore ; bx指向学生分数偏移地址lea si,StudAddress ;si指向存学生偏移地址的地址LoopChange1: ;将学生分数和下一个学生分数分别送入al,dl并比较大小;若当前学生分数小于下一个分数要交换其分数mov dx,word ptr[bx+2] ;此分数对应的学生的偏移地址mov ax,word ptr[bx]cmp ax,dxja EndExchange ;若大于则转而比较下两个分数值;交换偏移地址mov ax,word ptr [si+2] ;指定向ax中传入2个字节数据mov dx,word ptr [si]mov [si],axmov [si+2],dx;交换分数值mov ax,word ptr[bx+2]mov dx,word ptr[bx]mov word ptr[bx],axmov word ptr[bx+2],dxEndExchange:add si,2 ;指向下一个学生偏移地址的地址add bx,2 ;指向下一个存学生分数的地址loop LoopChange1pop cx ;保护外循环的CX值loop LoopChange0pop sipop dipop axpop bxpop cxpop dxretSortStudent endp;=============================================================;子程序名:MessTb;功能:输出1个Tab键;============================================================= MessTb proc nearpush dx ;保护相关寄存器push axlea dx,MessTab ;指向输出1个Tab键缓冲区mov ah,9 ;调用字符串输出程序int 21hpop axpop dxretMessTb endp;===================================================================;子程序名:Stop;功能是让程序停止运行一下,输入回车键继续执行;=================================================================== Stop proc nearpush ax ;保护相关寄存器push dxpush cxmov ah,1 ;回车int 21hpop cxpop dxpop axretStop endpcode endsend start。

《汇编语言程序设计》习题解答及课程实验、设计辅导

《汇编语言程序设计》习题解答及课程实验、设计辅导

实验一汇编程序的汇编及运行1.实验目的(1)熟悉汇编程序的汇编、连接、执行过程;(2)生成LST文件,查看LST文件;(3)生成OBJ文件,修改语法错误;(4)生成EXE文件;(5)执行程序。

2.实验涉及知识汇编程序从编写到执行的过程编程→.ASM→编译→.OBJ→连接→.EXE→加载→内存中的程序→执行1)编写源程序用EDIT或记事本输入各段,并存储成源程序(保存在MASM目录下),扩展名为ASM。

2)对源程序进行汇编、连接操作如下:(1)在DOS状态下,进入MASM目录;(2)输入命令:MASM 文件名(连同扩展名);(3)在系统出现的提示中输入:object filename[.obj]:按回车键。

Source listling[nul.lst]:输入:文件主名,生成lst文件,也可以不生成,直接按回车键。

Lst文件用于查看编译为目标文件的过程中产生的中间结果。

Cross-reference [nul.crf]:按回车键。

(4)如果系统没有提示出错,那么编译过程就完成了。

如果提示错误则应用edit打开源文件进行修改,然后再重复2和3步骤(5)输入:link 文件主名(不要输扩展名,也可以输入扩展名.obj)run file [.exe]:按回车键。

List file [nul.map]:按回车键。

Libraries [.lib]:按回车键。

(6)没有提示错误,汇编过程就结束了,产生了exe可执行文件。

如果出现‘no strack segment’的错误警告,不用理会。

3)执行程序(由DOS中的COMMAND命令将文件加载入内存)在DOS提示符下直接输入文件主名就可以执行文件了。

程序执行后,有的会显示结果,有的可能执行后什么结果都没有,是因为程序中没有显示命令。

3.实验内容1)将下面的数据段输入,取名1.ASM,保存在MASM文件夹下。

生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习中心:
专业:
年级:年春/秋季
学号:
学生:
题目:
1.谈谈你对本课程学习过程中的心得体会与建议?
2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。

《汇编语言程序设计》课程设计
注意:从以下5个题目中任选其一作答。

总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言
作业提交:
大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东101410013979浙江台州奥鹏学习中心[1]VIP)
以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。

如下图所示。

注意事项:
独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计!
题目一:进制转换程序
要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。

(2)算法思路:比如可设计二进制转化十六进制的算法,
简单介绍该算法的基本思想,100字左右即可。

(3)算法程序框图:绘制流程图或原理图,从算法的开始
到结束的程序框图。

(4)主要函数代码:列出算法的具体代码。

(5)列出算法中使用指令的含义,比如解释MOV指令的
含义,ADD指令的含义,至少撰写十个指令。

总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言!
题目二:冒泡排序算法
要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。

(2)算法思路:简单介绍冒泡排序算法的基本思想,至少
100字。

(3)算法程序框图:绘制流程图或原理图,从算法的开始
到结束的程序框图。

(4)主要函数代码:列出算法的具体代码,如讲一个首地
址为A的N字数组,编制程序将该数组中的数据按照从
大到小排序。

(5)列出算法中使用指令的含义,比如解释MOV指令的
含义,CMP指令的含义,至少撰写十个指令。

总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言!
题目三:设立标志位算法
要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。

(2)算法思路:试编制一个程序,从键盘中输入一行字符,
要求第一个字符必须是空格,如果不是,则退出程序。


果是,开始接受键入的字符并顺序存放在首地址为
BUFFER的缓冲区中(空格符不存入),直到接收到第二
个空格符时退出程序。

简单介绍该算法的基本思想,至少
100字。

(3)算法程序框图:绘制流程图或原理图,从算法的开始
到结束的程序框图。

(4)主要函数代码:列出算法的具体代码。

(5)列出算法中使用指令的含义,比如解释MOV指令的
含义,CMP指令的含义,至少撰写十个指令。

总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言!
题目四:删除数组中某一元素算法
要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。

(2)算法思路:试编制一个程序,在附加段中,有一个首
地址为LIST和未经排序的数组,在数组的第一个字中,
存放着该数组的长度,数组的首地址已经存在在DI寄存
器中,AX寄存器中存放着某个数据,要求在数组中查找
该数据,如果找到则删除。

简单介绍该算法的基本思想,
至少100字。

(3)算法程序框图:绘制流程图或原理图,从算法的开始
到结束的程序框图。

(4)主要函数代码:列出算法的具体代码。

(5)列出算法中使用指令的含义,比如解释MOV指令的
含义,LOOP指令的含义,至少撰写十个指令。

总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言!
题目五:插入数组中某一元素算法
要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。

(2)算法思路:试编制一个程序,将数据N插入一个已
经排好序的数组中,该数组的首地址以及末地址分别为
ARRAY_HEAD和ARRAY_END,数组以递增的顺序排
列。

简单介绍该算法的基本思想,至少100字。

(3)算法程序框图:绘制流程图或原理图,从算法的开始
到结束的程序框图。

(4)主要函数代码:列出算法的具体代码。

(5)列出算法中使用指令的含义,比如解释MOV指令的
含义,LOOP指令的含义,至少撰写十个指令。

总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言!。

相关文档
最新文档