汇编语言_课程设计1

合集下载

基于汇编语言的课程设计

基于汇编语言的课程设计

基于汇编语言的课程设计一、课程目标知识目标:1. 掌握汇编语言的基本概念,包括寄存器、指令、寻址方式等;2. 了解汇编语言的编程流程,能够阅读和分析简单的汇编程序;3. 了解汇编语言与硬件的关系,理解汇编指令对硬件操作的影响。

技能目标:1. 能够使用汇编语言编写简单的程序,实现基本的输入输出、运算和控制流程;2. 学会运用汇编语言进行程序调试,查找并修复程序中的错误;3. 能够运用汇编语言解决实际问题,如编写系统调用、中断处理等。

情感态度价值观目标:1. 培养学生对计算机底层原理的兴趣,激发他们探究硬件与软件关系的热情;2. 培养学生的编程思维,提高他们分析问题、解决问题的能力;3. 增强学生的团队合作意识,培养他们在编程过程中相互帮助、共同进步的精神。

课程性质:本课程为计算机科学与技术专业选修课,旨在帮助学生深入理解计算机硬件与软件的底层原理,提高编程技能。

学生特点:学生已具备一定的编程基础,熟悉高级编程语言,但对汇编语言了解较少。

教学要求:结合学生特点,课程设计注重理论与实践相结合,以实例为主线,引导学生掌握汇编语言的编程方法和技巧。

通过课程学习,使学生能够独立编写简单的汇编程序,并具备进一步深入学习汇编语言的能力。

教学过程中注重激发学生的学习兴趣,培养他们的编程素养和团队协作能力。

最终,将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 汇编语言基础知识:寄存器、指令、寻址方式、汇编语言编程环境搭建;教材章节:第一章至第二章2. 汇编语言编程流程:汇编程序的编写、汇编、链接和调试;教材章节:第三章3. 汇编语言基本指令:数据传输指令、算术运算指令、逻辑运算指令、控制流指令;教材章节:第四章4. 汇编语言程序设计:顺序结构、分支结构、循环结构、子程序设计;教材章节:第五章至第六章5. 汇编语言与硬件操作:中断处理、系统调用、I/O操作;教材章节:第七章6. 汇编语言综合实例:简单操作系统、驱动程序编写;教材章节:第八章教学内容安排和进度:1. 基础知识部分(2周):讲解寄存器、指令和寻址方式,引导学生搭建汇编语言编程环境;2. 编程流程部分(2周):学习汇编程序的编写、汇编、链接和调试;3. 基本指令部分(3周):深入学习各种汇编指令;4. 程序设计部分(4周):学习汇编语言的程序设计方法;5. 硬件操作部分(3周):了解汇编语言在硬件操作中的应用;6. 综合实例部分(4周):通过实例巩固所学知识。

汇编语言课程设计1实验报告

汇编语言课程设计1实验报告

汇编语言课程设计1实验报告一、引言本实验报告旨在探讨汇编语言课程设计1的实验内容和相关实验结果。

通过对实验的详细介绍和分析,可以更好地理解和应用汇编语言的基本知识和技术。

本实验报告分为以下几个部分进行讨论。

二、实验目的本实验旨在通过设计汇编语言程序,掌握汇编语言的基本语法和编程技巧,提高对计算机底层的理解和应用能力。

具体实验目的如下:1.熟悉汇编语言的基本知识和编程环境;2.学习如何使用汇编语言进行简单的数据处理和运算;3.掌握汇编语言中的跳转、循环和分支等控制结构;4.加深对计算机组成原理的理解和应用。

三、实验设计3.1 实验环境本实验使用的汇编语言编程环境为MASM(Microsoft Macro Assembler),具体配置如下:•操作系统:Windows 10•开发工具:MASM32•编辑器:Notepad++3.2 实验内容本实验的实验内容为实现一个简单的加法计算器程序。

具体要求如下:1.输入两个整数,并将其保存到内存;2.将两个整数相加,并将结果保存到内存;3.从内存读取结果,并输出到屏幕。

3.3 实验步骤下面是实验的具体步骤:1.打开MASM32开发工具,创建一个新的汇编语言项目;2.在编辑器中编写汇编语言程序,包括数据定义、输入输出处理和计算过程;3.使用MASM进行编译和链接,生成可执行程序;4.运行程序,输入两个整数,并查看输出结果。

四、实验结果经过以上步骤,我们成功实现了一个简单的加法计算器程序。

以下是实验结果的截图:Enter the first number: 10Enter the second number: 20The sum is: 30五、实验分析通过以上实验结果可以看出,我们的加法计算器程序能够正确地将输入的两个整数相加,并输出计算结果。

这证明我们所编写的汇编语言程序是正确的。

同时,通过这个实验,我们还可以总结出一些经验和教训:•在程序设计过程中,要仔细考虑数据定义和处理逻辑的正确性和合理性;•在编写汇编语言程序时,要注意语法和命令的正确使用,避免出现语法错误;•在调试程序时,要仔细检查每一步执行的结果,找出可能的错误原因。

汇编语言课程设计

汇编语言课程设计

«汇编语言》课程设计、题目1.简单的计算器2.字典3.“ Pc”钢琴二、目的:本次课程设计的目的是提高学生分析问题、解决问题的能力以及实际动手能力,进一步加深学生对汇编语言程序设计基本理论的理解, 使学生熟练掌握汇编语言程序上机调试的方法技巧、结构化程序设计技术及高级汇编语言技术,能编写较复杂的应用程序,为学习后继课程打下扎实的基础。

三、已知技术参数和设计要求:1. 编写一个有符号多位十进制数的四则运算计算器程序,所输入的算式如下例所示:—278+ 32 =—132——12=11 *—32=—1234/—18= 要求程序能接收键入的算式,在接收到‘='号时,计算并以有符号十进制数的形式显示结果,然后允许用户继续键入算式。

如果键入算式后再键入‘ . ',则显示结果并结束整个程序。

(‘/'为整除)2. 已知一个由英语单词组成的字符串已按字典序排好,每个单词以空格符为结束,该串的首二字节为16 位无符号二进制数,用以说明串的长度。

试编程能从键盘上输入单词(以空格字符为结束),若字符串中没有该单词,则将该单词插入该串适当的位置,使其仍保持字典序,并修改串长度,显示单词在串中位置及串长度;若字符串中有该单词,则显示字符串中所有包含该单词的单词,及其在字符串中的位置。

3. 编写程序,程序运行时使PC机成为一架可弹奏的“钢琴”。

当按下数字键0~9时, 发出6,7, 1 ,2,3,4,5,6,7,i ,十个音调,按‘ . '则退出“钢琴”状态。

总体要求1)程序结构清晰,相对独立的功能应尽量用子程序实现2)有较多提示信息,以方便用户使用3)能检测用户输入的错误,并作相应处理4)每个程序应作较多测试,以证明程序的正确性实验一:源代码:DATA SEGMENTSIG DB 00H ;用来记录要进行的运算NUM1 DW 0 ;用来记录输入的第一个数NUM2 DW 0 ;用来记录输入的第二个数X DB 10 ; 当输入的下一个数字时,大小为前一个数需要乘 10 DATA ENDS ; 再加上当前的数CODE SEGMENTMAIN PROC FARJMP MAINT3L1: CMP AL,2EHJZ quit; 当输入的字符为” .”时转去 quit ,即程序运行结束CMP CX,1JNZ L2ASSUME CS:CODE,DS:DATASTART: MAINT1: MOV AH,1 ; INT 21H MAINT3: CMP AL,30H JL L1 CMP AL,3DH JZ MAINT2 CALL BIN CMP DX,1JNZ L5 NEG BXMOV DX,0 L5: CMP CX,1JZ L3 MOV NUM2,BX ; JMP MAINT3 L3: 输入要运算的算式 ;和 0作比较 ; 小于 0 时转去 L1 ;当输入”=”时转去MAINT2进行计算结果 ;调用子程序BIN ,计算数值真实大小 ;当DX 为1使需对BX 进行取反 ; 恢复 DX CX 不等于1时记录当前输入的第二个数MOV NUM1,BX; 记录当前输入的第一个数MOV SIG,AL MOV CX,2 ;当CX不等于1时,即为当前要进行的运算JMP MAINT1L2: CMP AL,2DHJNZ MAINT1MOV DX,1JMP MAINT1 quit: MOV AH,4CHINT 21HMAINT2:CMP SIG,'+'JNZ S1MOV AX,NUM1MOV BX,NUM2ADD AX,BXJMP MAINT4S1: CMP SIG,'-'JNZ S2MOV AX,NUM1SUB AX,NUM2JMP MAINT4S2: CMP SIG,'*'JNZ S3MOV AX,NUM1MOV DX,0IMUL NUM2JMP MAINT4S3: MOV AX,NUM1MOV BX,NUM2IDIV BLCBWMAINT4:MOV BP,SP TESTAX,8000HJZ OUT2 MOVBX,AX MOV DL,'-' ;返回MINT1继续输入算式; 程序运行结束;SIG 为” +”时进行加法操作;SIG 为”- ”时进行减法操作;SIG 为” * ”时进行乘法操作; 否则进行除法运算; 当数为负数时进行取反操作INT 21HMOV AX,BXNEG AX ;取AX的反; 不断乘以10OUT2: DIV XMOV BL,AHMOV BH,0PUSH BXMOV AH,0CMP AL,0JNZ OUT2OUT3: POP DX ; 输出所求的结果; 因为显示的是ascall 码,所以需加上30H ADD DL,30HMOV AH,2INT 21H; 当bp 和sp 指向同一位置时输出结束CMP BP,SPJNZ OUT3MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HJMP START ;返回START进行下一轮计算MAIN ENDPBIN PROC NEAR ; 子程序BIN 用来转换输入的数字大小,即计算数值; 的真实大小PUSH DXMOV BX,0INC CXSUB AL,30HCBWXCHG AX,BXMOV DX,10MUL DXXCHG AX,BXBINT1: MOV AH,1INT 21HCMP AL,30H ; 判断输入的字符是否为数值JL EXITCMP AL,3DHJZ EXIT ; 当输入的字符不为字符时退出子程序SUB AL,30HBIN CBWXCHG AX,BXMOV DX,10 ;同过乘10 相加得到真实数值MUL DXXCHG AX,BXADD BX,AXJMP BINT1EXIT: POP DXRETBIN ENDPCODE ENDSEND START 运行结果:DATA SEGMENT;DICTIONARY 字典字符串,首两个字节为16位无符号二进制数,说明字符串长 度。

简单汇编语言课程设计

简单汇编语言课程设计

简单汇编语言课程设计一、课程目标知识目标:1. 学生能理解汇编语言的基本概念,掌握汇编语言的语法结构。

2. 学生能描述计算机硬件的基本组成,了解汇编语言与硬件操作的关系。

3. 学生能运用汇编语言编写简单的程序,实现基本的输入输出、运算和逻辑控制。

技能目标:1. 学生能独立完成汇编语言程序的编写、调试和运行。

2. 学生能运用汇编语言解决实际问题,培养编程思维和问题解决能力。

3. 学生能通过查阅资料,了解汇编语言在实际应用中的发展,提高信息素养。

情感态度价值观目标:1. 学生对汇编语言产生兴趣,认识到编程对个人和社会发展的意义。

2. 学生在编程过程中,培养耐心、细致、严谨的学术态度。

3. 学生通过学习汇编语言,增强团队协作意识,提高沟通与表达能力。

课程性质:本课程为信息技术课程,旨在让学生了解计算机底层原理,掌握汇编语言编程技能,培养编程兴趣。

学生特点:本课程针对的是高年级学生,他们已具备一定的计算机操作能力,思维活跃,好奇心强,具备一定的自学能力和团队合作精神。

教学要求:教师应注重理论与实践相结合,引导学生通过实际操作掌握汇编语言编程技能,激发学生的学习兴趣,培养其编程思维和问题解决能力。

同时,关注学生的个体差异,提供有针对性的指导,确保课程目标的实现。

在教学过程中,将目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 汇编语言概述- 了解汇编语言的发展历程- 掌握汇编语言与高级语言的异同2. 计算机硬件基础- 学习计算机硬件的基本组成- 了解汇编语言与硬件操作的关系3. 汇编语言语法- 掌握汇编语言的指令系统- 学习汇编语言的寄存器、操作数和地址表达式4. 汇编程序结构- 了解汇编程序的组织结构- 学习汇编程序的编写、调试和运行方法5. 基本输入输出操作- 掌握汇编语言实现输入输出的方法- 学习汇编语言与BIOS、中断的关系6. 算术运算与逻辑控制- 学习汇编语言实现基本算术运算和逻辑控制- 掌握相关指令和编程技巧7. 汇编语言编程实例- 分析经典汇编程序案例- 实践编写简单的汇编程序,解决实际问题教学内容安排和进度:第1周:汇编语言概述、计算机硬件基础第2周:汇编语言语法第3周:汇编程序结构第4周:基本输入输出操作第5周:算术运算与逻辑控制第6周:汇编语言编程实例及拓展教材章节关联:本教学内容与教材中“汇编语言程序设计”章节相关,涵盖了汇编语言的语法、编程技巧和实例。

王爽汇编语言课程设计

王爽汇编语言课程设计

王爽汇编语言课程设计一、课程目标知识目标:1. 理解汇编语言的基本概念,掌握汇编语言的语法和指令系统;2. 学会使用汇编语言进行程序设计和调试;3. 了解计算机硬件与汇编语言的关联,理解汇编语言在计算机运行中的作用。

技能目标:1. 能够运用汇编语言编写简单的程序,实现基本的输入输出、算术运算等功能;2. 学会使用汇编语言进行条件判断和循环控制;3. 掌握汇编语言与高级语言的混合编程方法。

情感态度价值观目标:1. 培养学生对计算机底层原理和汇编语言的兴趣,激发学习热情;2. 培养学生的编程思维和解决问题的能力,提高自信心;3. 强调汇编语言在计算机科学中的重要性,培养学生的专业素养。

课程性质分析:本课程为计算机科学与技术专业的基础课程,旨在帮助学生深入理解计算机硬件与软件的关联,掌握汇编语言的编程技能。

学生特点分析:学生处于大学本科阶段,具备一定的计算机基础知识和编程能力,对汇编语言有一定的好奇心,但可能对底层原理感到困惑。

教学要求:1. 结合实际案例,深入浅出地讲解汇编语言知识;2. 注重实践操作,培养学生的动手能力;3. 突出汇编语言在实际应用中的作用,提高学生的应用意识。

二、教学内容1. 汇编语言基础知识:介绍汇编语言的概念、发展历程、特点及应用场景,讲解汇编语言的语法和指令系统(对应教材第1章)。

- 数据类型与寄存器- 指令格式与寻址方式2. 汇编语言程序设计:讲解汇编语言的编程方法,通过案例分析和实践操作,使学生掌握汇编程序的设计与调试(对应教材第2-4章)。

- 程序结构- 基本指令的使用- 程序流程控制3. 汇编语言与硬件的关系:介绍汇编语言如何与计算机硬件交互,理解汇编语言在计算机运行中的作用(对应教材第5章)。

- 计算机硬件原理- 汇编语言与CPU的关联4. 混合编程:讲解汇编语言与高级语言的混合编程方法,提高学生的编程技能和应用能力(对应教材第6章)。

- 混合编程概念与原理- 混合编程实例分析5. 实践环节:设置多个实践任务,让学生动手编写汇编程序,巩固所学知识,提高实际操作能力(对应教材实践部分)。

王爽《汇编语言》课程设计一

王爽《汇编语言》课程设计一

课程设计(一)一、有除法溢出的dtoc子程序为:dtoc: push cxs:mov cx,10call divdw ;进行16位除法,被除数低16位存放在ax中,高16位存放在dx中,除数为10,存放在cx中,并调用不会产生溢出的除法运算的子程序divdwadd cx,30h ;将余数加上30h,就得到十进制数码字符对应的ASCII 码mov [si],cx ;将十进制数码字符对应的ASCII码存放在数据段中inc sipush ax ;保存此时的axadd ax,dx ;商是由ax和dx中的数据组合而成,为了判断商是否为0 mov cx,ax ;将商的高16位和低16位加起来,送给cxpop ax ;恢复axjcxz ok ;若商为0,则结束子程序jmp short sok: mov byte ptr [si],0 ;在字符串的结尾添个0call back ;调用把字符串反过来的子程序backpop cxretdivdw:mov bx,axmov ax,dxmov dx,0div cxpush axmov ax,bxdiv cxmov cx,dxpop dxretback:push dipush cxmov cx,simov di,0s1:mov al,[di]mov ah,0push axinc diloop s1mov di,0mov cx,sis2:pop axmov [di],alinc diloop s2pop cx二、课程设计首先,定义数据的时候,定义了一个栈段,在data段的开始定义了一个有10字节的空间,用来把数据转换成十进制形式的字符串,后面的总收入、雇员数、人均收入均为dword数据,方便后面统一来进行循环处理。

其次,刚开始的时候,用一个循环来计算人均收入,并把得到的数据放在data段中(在data段中定义了21个为0的dword数据用来存放人均收入)。

再次,在总体思路上,就是先定义一个32*21个字节的table段,把分别用子程序dtoc 把每个用二进制存放的数据转换成对应的十进制字符串,把字符串存放到table段中相应的位置,通过四个循环能把所有数据对应的字符串存放到table段中,这时的table 段中的存储模式与要求显示在屏幕上的模式一样,所以可以用一个双重循环将table 中的内容一个字节一个字节地复制到显示缓冲区的偶地址上,奇地址存放字符的颜色属性白色07h。

有关汇编语言的课程设计

有关汇编语言的课程设计

有关汇编语言的课程设计一、教学目标本课程旨在让学生了解汇编语言的基本概念、语法规则和编程技巧,培养学生运用汇编语言进行程序设计的能力。

具体目标如下:1.知识目标:(1)了解汇编语言的发展历程和基本特点;(2)掌握汇编语言的语法规则,包括指令、寄存器、内存寻址等;(3)熟悉汇编语言的程序结构,包括数据段、代码段、堆栈段等;(4)了解汇编语言与机器语言的关系。

2.技能目标:(1)能够使用汇编语言编写简单的程序;(2)具备汇编语言程序调试和排错的能力;(3)掌握汇编语言与C语言的互操作方法。

3.情感态度价值观目标:(1)培养学生对汇编语言编程的兴趣,提高学习的积极性;(2)培养学生勇于探索、严谨治学的科学精神;(3)培养学生团队协作、交流分享的良好习惯。

二、教学内容本课程的教学内容分为四个部分:1.汇编语言概述:介绍汇编语言的发展历程、基本特点和应用领域;2.汇编语言语法:讲解汇编语言的指令系统、寄存器、内存寻址等语法规则;3.汇编语言程序设计:学习汇编语言的程序结构,掌握编程技巧,体验汇编语言编程的过程;4.汇编语言与C语言的互操作:了解汇编语言与C语言的结合方式,掌握混合编程的方法。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解汇编语言的基本概念、语法规则和编程技巧;2.案例分析法:分析典型汇编语言程序,让学生体会汇编语言编程的魅力;3.实验法:让学生动手编写汇编语言程序,提高实际编程能力;4.讨论法:学生分组讨论,培养团队协作和交流分享的良好习惯。

四、教学资源为实现教学目标,本课程将采用以下教学资源:1.教材:选用权威、实用的汇编语言教材,为学生提供系统的学习资料;2.参考书:提供丰富的汇编语言参考书籍,方便学生深入学习;3.多媒体资料:制作精美的课件,辅助讲解和展示汇编语言编程实例;4.实验设备:提供计算机实验室,让学生进行汇编语言编程实践。

五、教学评估本课程采用多元化的评估方式,全面、客观地评价学生的学习成果。

汇编语言课程设计1

汇编语言课程设计1

华东交通大学课程设计目录1.设计任务 (1)2.设计目的 (1)3.设计思想 (1)4.概要设计 (1)5.详细设计 (3)6.程序代码 (3)7.程序调试 (12)8.课设小结 (13)参考文献 (13)1.设计任务在本次课程设计中,我组报的是编写打字游戏,该程序可以分辨输入的自与系统给出的字的相同与否,并作出相应的颜色处理。

2.设计目的本次课程设计的目的主要是将课堂上所学的知识学以致用,并同过程序的制作过程学习课外的新知识,加强加深对知识的理解与掌握,并通过小组团结合作,发挥每个人的力量使任务更加生动有趣。

3.设计思想程序首先定义一个hello的函数调用int 21h mov ah ,09来显示字符串,ds:dx定义字符串位置来使用一个80×25的界面使整个程序更加美观游戏主程序调用BIOS int 10 的9号功能实现对目标文本的颜色和定位,。

游戏主程序可以用int 16 mov ah,00从键盘读取输入的字符在调用int 21 movah,01 让键盘输入显示在屏幕中al=输入的字符,用cmp指令对输入的文本和目标文本进行比较,再利用选择语句将错误的输入字符显示为红色,将正确的输入字符显示为绿色。

在整个字符串结束后直接退到dos环境4.概要设计图1 流程图5.详细设计程序首先定义一个hello的函数调用int 21h mov ah ,09来显示字符串,ds:dx定义字符串位置来使用一个80×25的界面使整个程序更加美观。

程序定义了choosepage函数来实现页面的转换choosepage proc nearmov al,pgmov ah,05hint 10hretchoosepage endp它使可以产生新的页面,让程序的分布更加人性化。

游戏主程序调用BIOS int 10 的9号功能实现对目标文本的颜色和定位,。

游戏主程序可以用int 16 mov ah,00从键盘读取输入的字符在调用int 21 mov ah,01 让键盘输入显示在屏幕中al=输入的字符,将键盘输入的字符与目标文本进行比较用cmp指令对输入的文本和目标文本进行比较,再利用选择语句将错误的输入字符显示为红色,将正确的输入字符显示为绿色。

【报告】课程设计报告汇编语言1

【报告】课程设计报告汇编语言1

【关键字】报告计算机原理与汇编语言设计报告题目:用汇编语言编写一个程序,在屏幕上接收一串带数字、字母及其它字符的字符串,然后统计其中数字、字母、单词的个数,并显示出来专业:物联网工程班级:学号:姓名:指导教师:日期:2014年3月11日目录一.课程设计的题目课程设计题目:用汇编语言编写一个程序,在屏幕上接收一串带数字、字母及其它字符的字符串,然后统计其中数字、字母、单词的个数,并显示出来二.设计目的设计目的:学习用汇编语言编写设计分支循环程序三.设计思路设计思路:通过循环比较输入的值,最后显示出相应十进制的比较结果。

解决方案:分支循环四.设计原理设计原理:通过分支程序设计实现字母、数字及其它字符的分类统计计数。

五.设计内容具体内容(1)定义数据结构单个字符的输入、字符串的输出、结果数字的输出。

分类主要是数字:’0’~’9’,字母’A’~’Z’ 和’a’~’z’ ,其它。

对应的ASCII码为30H~39H, 41H~5AH, 61H~7AH,...(2)程序实现start:MOV AX,DATASMOV DS,AXLEA DX,STRING1 ;显示输入提示信息Please input a string,LEA取指功能实现。

MOV AH,09H ;09H为字符串输出INT 21H ;中断调用,INT 21H 中断为DOS中断MOV CX,100 ;设置循环次数足够大,CX用来保存循环指令L1:MOV AH,01H ;中断调用,单字符输入,01H带回显的键盘输入,INT 21H ;输入符号的ASCII代码在AL寄存器中。

(3)程序要求程序接受用户键入的一行字符(字符个数不超过80个,该字符串用回车符结束),并按字母、数字及其它字符分类计数,然后将结果存入以letter、digit和other为名的保存单元中六.实现步骤1.实现步骤:先输入任意的字符、数字、其他。

之后按Enter键,分别显示出输入字符的数量、数字的数量、其他的数量,都按十进制显示出来。

汇编语言课程设计

汇编语言课程设计

汇编语言课程设计1. 引言汇编语言是一种底层的编程语言,相比高级语言,它更接近计算机底层硬件。

学习汇编可以帮助我们深入理解计算机底层实现原理,对于提高我们的计算机编程能力有很大帮助。

本文将介绍我所设计的汇编语言课程项目。

2. 项目背景本项目的背景是我所在的大学计算机科学专业的汇编语言课程设计。

该课程设计的目的是让学生完成一个简单的汇编语言程序,对汇编语言编程有一个初步了解。

3. 项目内容我设计的汇编语言课程项目是一个简单的计算器程序。

该程序能够实现加减乘除四种基本运算。

该计算器程序将用户输入的两个数进行四则运算,并将结果输出。

程序具体实现过程如下:1.用户输入两个数2.用户输入运算符(+、-、*、/)3.程序进行相应的运算4.将运算结果输出4. 程序实现细节4.1 输入部分在IBM PC或IBM兼容机上的汇编程序中,BIOS提供了一个10号中断,用于从键盘读取单个字符。

可以使用该中断来实现从键盘输入数值和运算符。

具体来说,在程序中使用int 10h指令调用10号中断,该指令会将读取到的字符放入到AL寄存器中。

例如,要读取输入的第一个数,可以使用下面的汇编代码:xor ax, axmov ah, 0int 16h ;等待按键mov bh, 10 ;设置缓冲区大小为10lea di, num1 ;设置存放用户输入的缓冲区mov ch, 0 ;初始化输入计数器read_num:mov ah, 0 ;再次调用int 16hint 16h ;读取单个字符到AL寄存器cmp al, 0dh ;判断是否为回车键je read_num_donecmp al, 20h ;判断是否为空格je read_numcmp al, 30hjb read_numcmp al, 39hja read_nummov [di], al ;添加输入inc di ;移动指针inc ch ;计数cmp ch, bh ;缓冲区是否满了jne read_numread_num_done:mov [di], 0 ;字符串结束该代码段可以实现从键盘读取用户输入的第一个数,并存储到num1字符串中。

汇编语言第二版课程设计

汇编语言第二版课程设计

汇编语言第二版课程设计课程背景汇编语言是一门底层编程语言,它直接操作计算机底层硬件。

因此,它对于计算机专业学生是一门非常重要的课程。

在本课程设计中,我们选用《汇编语言》第二版作为教材,通过具体的课程设计来帮助学生更好地掌握汇编语言的基础知识和应用。

课程目标通过本课程设计的学习和实践,学生应该能够:1.掌握汇编语言的基础语法和常用指令;2.熟悉汇编程序的调试和优化过程;3.初步了解CPU的基本工作原理;4.能够实现一些简单的应用程序。

课程内容第一讲:汇编语言基础本讲主要介绍汇编语言的基本语法和常用指令,包括寄存器、内存、运算符、标志寄存器等内容。

通过实例代码的编写和调试,让学生逐步熟悉汇编语言的基本使用方法。

第二讲:条件分支与循环本讲主要介绍条件分支和循环语句的使用方法。

通过实际应用场景的模拟,让学生深入了解条件分支和循环语句的实现原理。

第三讲:子程序本讲主要介绍子程序的概念和使用方法。

通过实例代码的编写和调试,让学生了解如何进行程序模块化设计,提高程序的复用性和可维护性。

第四讲:中断与异常本讲主要介绍中断和异常的概念和使用方法。

通过实例代码的编写和调试,让学生了解中断和异常的实现机制,提高程序的可靠性和稳定性。

课程实验课程实验是本课程的重要组成部分,通过实际操作让学生巩固所学的知识。

本课程设计中,我们安排了三个实验:1.编写一个能够实现加、减、乘、除四种基本运算的计算器程序;2.编写一个能够将任意大写字母转换成小写字母的程序;3.编写一个能够实现简单计算器、机器翻译和音乐播放器的操作系统。

考核方式本课程以实验报告和期末考试相结合的方式进行考核。

实验报告占总成绩的70%。

期末考试占总成绩的30%。

实验报告和期末考试的具体要求将在课程教学过程中发布。

总结通过本课程的学习和实践,学生能够掌握汇编语言的基础知识和应用方法,提高编程能力和代码质量。

本课程的设计旨在让学生逐步实现一个简单的操作系统,帮助他们更好地理解计算机底层的工作原理和实现过程。

汇编语言课程设计1

汇编语言课程设计1

中北大学信息商务学院课程设计任务书汇编语言程序设计实验11/12 学年第二学期系别:信息与通信工程专业:自动化学生姓名:刘波学号:09050542X45 课程设计题目:成绩等级判断程序设计起迄日期: 6 月18 日~ 6 月24 日指导教师:刘长明系主任:王明泉下达任务书日期: 2012 年6月 18 日1.设计目的:设计一个根据所学汇编语言课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个综合性应用程序进一步提高综合运用知识的能力。

2.设计内容和要求(1)题目内容:●成绩等级判断程序设计:90以上输出A,80~90输出B……;可以重复输入,有退出键功能。

●定时中断程序:定时30秒,在30秒内,输入字符,时间到输出字符个数。

●屏幕输入程序:屏幕上开窗口,按上下左右键,调节屏幕窗口尺寸。

实时时钟程序设计:每隔一秒显示系统时钟;可以重复输入,有退出键功能。

●闰年判别程序设计:输入四位年份判断是否为闰年,是输出Y,不是输出N;可以重复输入,有退出键功能。

(2)题目要求:以上题目任选一个做,写出设计说明书,包涵程序清单和流程图。

3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:(1)查阅资料,确定程序方案(2)画出流程图,编写程序(3)撰写课程设计说明书4.主要参考文献:《IBM PC汇编语言程序设计》沈美明,温冬禅,清华大学出版社,第二版。

5.设计成果形式及要求:课程设计说明书1份流程图1份程序清单1份6.工作计划及进度:2012年 6月18日 ~ 6月19日收集整理资料,确定程序设计方案6月20日 ~ 6月23日画出流程图,编写程序6月22日撰写课程设计说明书答辩系主任审查意见:签字:年月日程序设计一、题目基本内容设计题目:成绩评定具体要求:(1)显示简易数字菜单(2)输入成绩,显示成绩评定的等级(90-100为优,80-90为良,70-80为中,60-70为及格,60分以下为不及格)二、系统流程框图(al)=1或2?开始简易数字菜单选择菜单号退出输入成绩到bx (al)=1?(bx)=’o ’?(bx)<60?(bx)<70?(bx)<80?(bx)<90?(bx)<=100?显示等级A显示等级B 显示等级C显示等级D 显示等级E三、课程设计的具体内容说明根据课题的要求,主要完成一下几方面的设计:1.显示简易数字菜单,根据选择的菜单号,执行相应的分支程序2.从键盘输入一个十进制数字(编写一个子程序)3.对输入的数据进行比较,显示相应成绩等级(优,良,中,及格,不及格可以分别用A,B,C,D,E表示)四、课程设计中关键内容的分析设计说明1.简易数字菜单只有两个选择号(1~2),选择1表示就跳转到执行成绩评定的程序,选择2就返回到DOS窗口。

汇编语言王爽第四版课程设计一

汇编语言王爽第四版课程设计一

汇编语言王爽第四版课程设计一
汇编语言王爽第四版课程设计一
这是一个通用的课程设计,可用于任何基于王爽第四版的汇编语言课程。

本设计的目标是让学生掌握汇编语言的基本概念和指令集,并通过编写实际的汇编程序来加深对汇编语言的理解。

课程设计一:一个简单的汇编程序
1. 教学目标
- 让学生了解汇编语言的基本概念和指令集
- 让学生学会编写简单的汇编程序
- 让学生通过编写汇编程序来加深对汇编语言的理解
2. 教学内容
- 汇编语言的基本概念
- 汇编指令集
- 汇编程序的编写方法
- 程序的控制流
- 变量和数据的定义和使用
- 栈的使用
- 汇编程序的调试和测试
3. 教学资源
- 汇编语言教材或教程
- 汇编指令集手册或在线资源
- 计算机体系结构和编程知识
- IDE 或编辑器,如 Visual Studio Code 或 Sublime Text - 调试工具,如 GDB 或 LLDB
4. 教学步骤
- 介绍汇编语言的基本概念和指令集
- 讲解汇编程序的编写方法
- 让学生编写简单的汇编程序并进行调试和测试
- 让学生展示他们的汇编程序,进行交流和反馈
- 让学生继续深入学习,掌握更多的汇编语言知识和技能。

汇编语言简单课程设计

汇编语言简单课程设计

汇编语言简单课程设计一、课程目标知识目标:1. 理解汇编语言的基本概念,掌握汇编语言的语法和结构;2. 学会使用汇编语言编写简单的程序,理解程序执行的流程和机制;3. 了解汇编语言与机器语言的关系,明白汇编语言在计算机体系结构中的作用。

技能目标:1. 能够正确使用汇编语言编写、编译和调试简单的程序;2. 能够运用汇编语言进行基本的输入输出操作,实现数据的处理和控制流程;3. 能够分析并解决汇编程序中的常见问题,优化程序性能。

情感态度价值观目标:1. 培养学生对计算机底层原理的兴趣,激发深入学习计算机科学的热情;2. 培养学生的逻辑思维能力和解决问题的耐心,增强面对困难的勇气和毅力;3. 引导学生认识到汇编语言在计算机发展中的重要性,培养对计算机历史的尊重和敬畏。

课程性质:本课程为计算机科学与技术专业的选修课程,旨在帮助学生了解计算机底层原理,提高编程技能。

学生特点:学生具备一定的编程基础,对计算机原理有一定的了解,但汇编语言接触较少,需要从基础知识入手。

教学要求:结合学生特点和课程性质,课程设计应注重理论与实践相结合,以实例为主线,引导学生主动探索和实践,提高学生的编程能力和解决问题的能力。

教学过程中,注重激发学生的学习兴趣,培养学生的逻辑思维和团队合作精神。

通过本课程的学习,使学生能够掌握汇编语言的基本知识,为后续相关课程打下坚实基础。

二、教学内容1. 汇编语言概述- 了解汇编语言的发展历程和特点- 掌握汇编语言与高级语言的区别2. 计算机体系结构基础- 学习CPU的工作原理和寄存器的作用- 理解内存组织结构和寻址方式3. 汇编语言语法与指令集- 掌握汇编语言的语法规则- 学习常用汇编指令及其功能4. 汇编程序结构与流程控制- 熟悉汇编程序的基本结构- 学习分支、循环等流程控制语句的使用5. 汇编语言中的数据表示- 掌握二进制、十进制、十六进制等数据表示方法- 学习数据存储和处理的相关知识6. 常用汇编程序设计技巧- 掌握汇编程序中的宏定义和条件编译- 学习汇编程序中的优化技巧7. 汇编程序的编译与链接- 了解汇编程序的编译过程- 学习汇编程序与链接器的使用方法8. 汇编程序实例分析- 分析经典的汇编程序实例- 学习汇编程序在实际应用中的技巧和经验教学内容安排与进度:第1周:汇编语言概述第2周:计算机体系结构基础第3周:汇编语言语法与指令集第4周:汇编程序结构与流程控制第5周:汇编语言中的数据表示第6周:常用汇编程序设计技巧第7周:汇编程序的编译与链接第8周:汇编程序实例分析教学内容与教材关联性:本教学内容基于教材《汇编语言》进行组织,涵盖教材中相关章节的核心知识点,结合课程目标进行适当的调整和补充,确保教学内容与课程目标相符合。

汇编语言的课程设计

汇编语言的课程设计

汇编语言的课程设计一、课程目标知识目标:1. 理解汇编语言的基本概念和组成,掌握汇编语言的编程规则;2. 掌握汇编语言的常用指令,并能正确运用到程序编写中;3. 了解汇编语言与机器语言的关系,明白汇编语言在计算机体系结构中的作用;4. 学会使用汇编语言进行基本的输入输出操作,以及简单的数据处理。

技能目标:1. 能够独立编写简单的汇编程序,实现基本的功能需求;2. 能够运用汇编语言进行程序调试,找出并修正程序中的错误;3. 能够阅读和理解汇编语言的源代码,分析程序的执行过程;4. 能够通过汇编语言编程,提高对计算机硬件的理解和操作能力。

情感态度价值观目标:1. 培养学生对汇编语言的兴趣,激发他们探索计算机底层原理的热情;2. 培养学生严谨的编程习惯,注重代码质量和程序效率;3. 增强学生的团队合作意识,学会在编程过程中相互交流和分享经验;4. 培养学生面对编程挑战时的耐心和毅力,勇于克服困难,不断进步。

本课程针对高年级学生,具有较强的理论性和实践性。

通过本课程的学习,学生将深入理解计算机硬件与软件的紧密联系,提高编程能力和问题解决能力。

课程要求学生在掌握基本概念和技能的基础上,注重实际应用和创新能力的发展。

教学过程中,教师应关注学生的个体差异,提供针对性的指导和帮助,确保每位学生能够达到预定的学习成果。

二、教学内容本章节教学内容主要包括以下几部分:1. 汇编语言概述:介绍汇编语言的发展历程、特点及在计算机编程中的应用;- 教材章节:第1章 汇编语言基础知识2. 汇编语言基本概念:讲解汇编语言的组成元素,如指令、寄存器、内存单元等;- 教材章节:第2章 汇编语言的基本概念3. 汇编语言编程规则:学习汇编语言的语法、指令系统、伪指令等;- 教材章节:第3章 汇编语言的编程规则4. 汇编语言常用指令:掌握数据传送、算术运算、逻辑运算、控制转移等常用指令;- 教材章节:第4章 常用指令介绍5. 汇编语言程序设计:学习编写简单的汇编程序,进行基本的输入输出操作;- 教材章节:第5章 汇编语言程序设计6. 汇编语言与硬件的关系:探讨汇编语言如何与计算机硬件进行交互;- 教材章节:第6章 汇编语言与硬件的关系7. 汇编语言程序调试与优化:介绍汇编程序的调试方法、技巧以及性能优化;- 教材章节:第7章 程序调试与优化教学内容按照以上安排进行,保证教学进度的科学性和系统性。

汇编语言程序设计第一版课程设计

汇编语言程序设计第一版课程设计

汇编语言程序设计第一版课程设计一、课程设计目的本次课程设计旨在通过编程实现一些基本的汇编语言程序,让学生了解汇编语言的基本语法和程序设计思路,培养学生掌握汇编语言的能力和对计算机底层硬件的了解。

二、课程设计要求1.学生需要使用汇编语言编写一个简单的计算器,实现加减乘除运算。

2.学生需要使用汇编语言编写一个程序,用于从键盘输入一个整数,然后在屏幕上输出该整数的平方。

3.学生需要使用汇编语言编写一个程序,用于读取一个磁盘文件的内容并在屏幕上显示。

4.学生需要使用汇编语言编写一个简单的动态链接库,实现一些基本的数学运算函数。

三、课程设计思路1. 计算器编写计算器程序的关键在于如何实现加减乘除运算。

我们可以通过使用计算机的CPU指令来实现这些运算。

例如,加法运算可以通过使用ADD指令来实现,减法运算可以通过使用SUB指令来实现,乘法和除法运算则可以通过使用MUL和DIV指令来实现。

在编写程序时,我们可以先通过MOV指令将需要进行运算的数值加载到寄存器中,然后再通过相应的指令进行运算,并将结果存储到指定的内存地址中。

2. 计算平方编写计算平方的程序需要使用到乘法指令。

我们可以通过从键盘上读取一个整数,然后将其乘以自己,最后将结果输出到屏幕上。

在编写程序时,我们需要使用INT 21H中断来读取键盘输入,并使用MOV和MUL指令进行乘法运算,并使用INT 21H中断来将结果输出到屏幕上。

3. 读取磁盘文件要读取磁盘文件的内容,我们首先需要使用INT 21H中断调用来打开需要读取的文件,并将文件句柄保存到寄存器中。

然后,通过使用READ指令从文件中读取数据,并将数据存储到指定的内存地址中。

最后,我们可以通过使用INT 21H中断调用来将读取到的数据输出到屏幕上。

4. 动态链接库动态链接库是一种可重定位目标文件,可以被多个程序共享使用。

在本次课程设计中,我们需要编写一个简单的动态链接库,用于实现一些基本的数学运算函数,例如加减乘除和求平方等操作。

汇编语言课程设计

汇编语言课程设计

《汇编语言》课程设计任务书一、题目1.简单的计算器2.字典3.“Pc”钢琴二、目的:本次课程设计的目的是提高学生分析问题、解决问题的能力以及实际动手能力,进一步加深学生对汇编语言程序设计基本理论的理解,使学生熟练掌握汇编语言程序上机调试的方法技巧、结构化程序设计技术及高级汇编语言技术,能编写较复杂的应用程序,为学习后继课程打下扎实的基础。

三、已知技术参数和设计要求:1.编写一个有符号多位十进制数的四则运算计算器程序,所输入的算式如下例所示:-278+32=-132――12=11*-32=-1234/-18=要求程序能接收键入的算式,在接收到‘=’号时,计算并以有符号十进制数的形式显示结果,然后允许用户继续键入算式。

如果键入算式后再键入‘.’,则显示结果并结束整个程序。

(‘/’为整除)2.已知一个由英语单词组成的字符串已按字典序排好,每个单词以空格符为结束,该串的首二字节为16位无符号二进制数,用以说明串的长度。

试编程能从键盘上输入单词(以空格字符为结束),若字符串中没有该单词,则将该单词插入该串适当的位置,使其仍保持字典序,并修改串长度,显示单词在串中位置及串长度;若字符串中有该单词,则显示字符串中所有包含该单词的单词,及其在字符串中的位置。

3.编写程序,程序运行时使PC机成为一架可弹奏的“钢琴”。

当按下数字键0~9时,发出6,7,1,2,3,4,5,6,7,i,十个音调,按‘.’则退出“钢琴”状态。

总体要求1)程序结构清晰,相对独立的功能应尽量用子程序实现2)有较多提示信息,以方便用户使用3)能检测用户输入的错误,并作相应处理4)每个程序应作较多测试,以证明程序的正确性实验一:源代码:DATA SEGMENTSIG DB00H;用来记录要进行的运算NUM1DW0;用来记录输入的第一个数NUM2DW0;用来记录输入的第二个数X DB10;当输入的下一个数字时,大小为前一个数需要乘10 DATA ENDS;再加上当前的数CODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART:MAINT1:MOV AH,1;输入要运算的算式INT21HMAINT3:CMP AL,30H;和0作比较JL L1;小于0时转去L1CMP AL,3DHJZ MAINT2;当输入”=”时转去MAINT2进行计算结果CALL BIN;调用子程序BIN,计算数值真实大小CMP DX,1JNZ L5NEG BX;当DX为1使需对BX进行取反MOV DX,0;恢复DXL5:CMP CX,1JZ L3MOV NUM2,BX;CX不等于1时记录当前输入的第二个数JMP MAINT3L3:MOV NUM1,BX;记录当前输入的第一个数JMP MAINT3L1:CMP AL,2EHJZ quit;当输入的字符为”.”时转去quit,即程序运行结束CMP CX,1JNZ L2MOV SIG,AL;当CX不等于1时,即为当前要进行的运算MOV CX,2JMP MAINT1;返回MINT1继续输入算式L2:CMP AL,2DHJNZ MAINT1MOV DX,1JMP MAINT1quit:MOV AH,4CH;程序运行结束INT21HMAINT2:CMP SIG,'+';SIG为”+”时进行加法操作JNZ S1MOV AX,NUM1MOV BX,NUM2ADD AX,BXJMP MAINT4S1:CMP SIG,'-';SIG为”-”时进行减法操作JNZ S2MOV AX,NUM1SUB AX,NUM2JMP MAINT4S2:CMP SIG,'*';SIG为”*”时进行乘法操作JNZ S3MOV AX,NUM1MOV DX,0IMUL NUM2JMP MAINT4S3:MOV AX,NUM1;否则进行除法运算MOV BX,NUM2IDIV BLCBWMAINT4:MOV BP,SP;当数为负数时进行取反操作TEST AX,8000HJZ OUT2MOV BX,AXMOV DL,'-'INT21HMOV AX,BXNEG AX;取AX的反OUT2:DIV X;不断乘以10MOV BL,AHMOV BH,0PUSH BXMOV AH,0CMP AL,0JNZ OUT2OUT3:POP DX;输出所求的结果ADD DL,30H;因为显示的是ascall码,所以需加上30HMOV AH,2INT21HCMP BP,SP;当bp和sp指向同一位置时输出结束JNZ OUT3MOV DL,0AHMOV AH,2INT21HMOV DL,0DHMOV AH,2INT21HJMP START;返回START进行下一轮计算MAIN ENDPBIN PROC NEAR;子程序BIN用来转换输入的数字大小,即计算数值;的真实大小PUSH DXMOV BX,0INC CXSUB AL,30HCBWXCHG AX,BXMOV DX,10XCHG AX,BXADD BX,AXBINT1:MOV AH,1INT21HCMP AL,30H;判断输入的字符是否为数值JL EXITCMP AL,3DHJZ EXIT;当输入的字符不为字符时退出子程序BIN SUB AL,30HCBWXCHG AX,BXMOV DX,10;同过乘10相加得到真实数值MUL DXXCHG AX,BXADD BX,AXJMP BINT1EXIT:POP DXRETBIN ENDPCODE ENDSEND START运行结果:实验二:源代码:DATA SEGMENT;DICTIONARY字典字符串,首两个字节为16位无符号二进制数,说明字符串长度。

汇编语言课程设计案

汇编语言课程设计案

汇编语言课程设计案一、课程目标知识目标:1. 掌握汇编语言的基本概念和原理,理解汇编语言与机器语言的关系。

2. 学习汇编语言的语法规则,掌握常用指令的用法和功能。

3. 了解汇编语言程序的基本结构,学会编写简单的汇编程序。

技能目标:1. 能够使用汇编语言编写基本的程序,具备调试和运行汇编程序的能力。

2. 学会使用汇编语言进行数据运算和逻辑操作,具备解决实际问题的能力。

3. 能够运用汇编语言进行简单的系统编程,如中断处理和设备驱动程序。

情感态度价值观目标:1. 培养学生对计算机底层原理的兴趣和好奇心,激发学习汇编语言的积极性。

2. 培养学生的动手实践能力,增强对编程的自信心和解决问题的耐心。

3. 培养学生的团队合作意识,学会与他人合作共同探讨和解决编程中的问题。

课程性质:本课程为计算机科学与技术专业选修课程,侧重于汇编语言的实用性和实践性。

学生特点:学生具备一定的编程基础,对计算机组成原理有一定了解,但对汇编语言接触较少。

教学要求:结合学生特点,注重理论与实践相结合,强调实践操作,培养学生实际编程能力。

通过本课程的学习,使学生能够独立编写简单的汇编程序,并为后续相关课程打下基础。

教学过程中,关注学生的学习进度,及时调整教学方法和节奏,确保课程目标的达成。

二、教学内容1. 汇编语言概述- 了解汇编语言的发展历程和特点- 掌握汇编语言与高级语言的联系与区别2. 计算机组成原理回顾- 复习CPU、内存、寄存器等硬件组件的工作原理- 理解指令执行过程和数据存储方式3. 汇编语言基础知识- 学习汇编语言的语法规则- 掌握汇编指令的分类和用法4. 汇编程序结构- 学习汇编程序的组织结构- 熟悉伪指令、宏指令等概念5. 数据处理与运算- 学习数据定义、数据传送、算术运算、逻辑运算等指令- 掌握条件分支、循环结构等程序控制语句6. 子程序与中断处理- 学习子程序的编写与调用- 了解中断处理过程,学会编写中断处理程序7. 汇编语言与硬件操作- 掌握汇编语言访问I/O端口的方法- 学习汇编语言进行设备驱动程序编写8. 实践项目- 设计简单汇编程序,实现数据运算和逻辑操作- 结合硬件设备,编写中断处理和设备驱动程序教学内容安排与进度:本课程共安排16个学时,按照以上教学内容分为八个部分,每部分2个学时。

汇编语言程序设计参考课程设计

汇编语言程序设计参考课程设计

汇编语言程序设计参考课程设计1. 简介本文是一份汇编语言程序设计参考课程设计,可以作为初学者从零开始学习汇编语言的教程,也可以作为已经有一定汇编语言基础的人进一步提升自己的思考和实践能力的参考资料。

2. 学习前需要掌握的知识在学习汇编语言之前,需要掌握一些基础的编程知识,包括:•计算机组成原理:掌握计算机的结构和基本原理。

•数据结构:掌握常用的数据结构,如数组、链表等。

•C语言:掌握C语言编程基础,了解指针、函数、结构体等概念,并掌握简单的C语言编程技巧。

3. 学习目标本次课程设计的目标是让学员了解汇编语言的基本知识,掌握汇编语言的基本编程技巧,能够通过编写简单的汇编语言程序来加深对计算机原理和计算机底层操作的理解。

4. 课程内容4.1 汇编语言概述•了解汇编语言的定义。

•汇编语言和高级语言的区别。

•汇编语言的优缺点。

•汇编语言的应用。

4.2 汇编语言基础•汇编语言的语法和基础指令。

•寄存器、内存和操作数的概念。

•操作数格式的基本规则。

•I/O操作的实现。

4.3 数据处理•数据的表示和存储。

•算术运算、逻辑运算和位运算。

•运算符的优先级和结合律。

•数据转移指令和程序控制指令。

4.4 中断和子程序•中断的概念。

•中断的分类和应用。

•中断服务程序的编写。

•子程序的概念和实现方法。

4.5 内存管理•内存寻址模式。

•程序过程中的栈操作。

•创建和删除进程的方法。

4.6 实践案例•程序设计题目,具体根据实际情况设计。

5. 学习方法•学习汇编语言需要有一定的学习毅力和耐心,需要花费大量的时间和精力进行实践和调试。

•在学习过程中需要注意对汇编语言语法和指令格式的理解和记忆。

•通过编写小程序,将理论与实践相结合,提高编程水平。

•多参考其他教程和参考书,尤其是有经验的教授给学生讲解课程的方式和技巧。

•保持长期的学习热情和持续投入,不断积累和扩展自己的知识储备和实践技能。

6. 总结通过本次课程的学习,学员将掌握汇编语言的基本知识和编程技巧,加深对计算机原理和底层操作的理解,提高自己的编程能力和思考能力。

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

汇编语言课程实验报告
实验名称
课程设计1
实验环境
硬件平台:Intel Core i5-3210M
操作系统:DOSBox 0.74 in Windows 8.1
软件工具:Turbo C 2.0, Debug, MASM
实验内容
将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。

实验步骤
1.要完成这个实验,首先我们需要编写三个子程序。

第一个子程序是可以显示字符串到屏
幕的程序,其汇编代码如下:
;名称:show_str
;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串
;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址
;返回:显示在屏幕上
show_str:
push ax
push cx
push dx
push es
push si
push di
mov ax,0b800h
mov es,ax
mov al,160
mul dh
add dl,dl
mov dh,0
add ax,dx
mov di,ax
mov ah,cl
show_str_x:
mov cl,ds:[si]
mov ch,0
jcxz show_str_f
mov al,cl
mov es:[di],ax
inc si
inc di
inc di
jmp show_str_x
show_str_f:
pop di
pop si
pop es
pop dx
pop cx
pop ax
ret
2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出
来。

第二个程序汇编代码如下:
;名称:dtoc_word
;功能:将一个word型数转化为字符串
;参数:(ax)=word型的数据,ds:si指向字符串的首地址
;返回:ds:[si]放此字符串,以0结尾
dtoc_word:
push ax
push bx
push dx
push si
mov bx,0
dtoc_word_x:
mov dx,0
mov cx,10
div cx
mov cx,ax
add dx,'0'
push dx
inc bx
jcxz dtoc_word_f
jmp dtoc_word_x
dtoc_word_f:
mov cx,bx
dtoc_word_x1:
pop ds:[si]
inc si
loop dtoc_word_x1
pop si
pop dx
pop cx
pop bx
pop ax
ret
3.除了以上两个程序,我们还需要考虑一个问题,即有些数据已经大于65535,应该编写
一个新的程序,将一个double word型数转化为字符串。

汇编代码如下:
;名称:dtoc_dword
;功能:将一个double word型数转化为字符串
;参数:(dx)=数的高八位,(ax)=数的低八位
;返回:ds:[si]放此字符串,以0结尾
;备注:会用到divdw函数
dtoc_dword:
push ax
push bx
push cx
push dx
push si
mov bx,0
dtoc_dword_x:
mov cx,10
call divdw
push cx
cmp ax,0
jne dtoc_dword_x
cmp dx,0
jne dtoc_dword_x
mov cx,bx
dtoc_dword_x1:
pop ds:[si]
add byte ptr ds:[si],'0'
inc si
loop dtoc_dword_x1
pop si
pop dx
pop cx
pop bx
pop ax
ret
4.考虑到div指令除法溢出的问题,我们还需要写一个程序,进行不会产生溢出的除法运
算,如下:
;名称:divdw
;功能:除法,被除数32位,除数16位,商32位,余数16位,不会溢出
;参数:(dx)=被除数高16位,(ax)=被除数低16位,(cx)=除数
;返回:(dx)=商高16位,(ax)=商低16位,(cx)=余数
divdw:
push bx
push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
pop ax
div cx
mov cx,dx
mov dx,bx
pop bx
ret
5.将这四个子程序整合起来,并编写主程序。

主程序代码如下:
assume cs:code ;Ps:函数中的标号为防止冲突,都加了本函数名为前缀
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ;以上是表示21年公司总收的21个dword型数据
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,45257,17800
;以上是表示21年公司雇员人数的21个word型数据
data ends
agency segment
db 8 dup(0)
agency ends
code segment
start: mov ax,0b800h
mov es,ax
mov di,0
mov cx,80*24
x: mov byte ptr es:[di],' ' ;将屏幕清空
mov byte ptr es:[di+1],0
inc di
inc di
loop x
mov ax,data
mov es,ax
mov di,0
mov bx,0
mov ax,agency
mov ds,ax
mov si,0
mov dh,2
mov cx,21
x1: push cx
mov ax,es:[di]
mov ds:[si],ax
mov ax,es:[di+2]
mov ds:[si+2],ax
mov byte ptr ds:[si+4],0 ;显示年份
mov dl,0
mov cl,7
call show_str
mov ax,es:[84+di]
push dx
mov dx,es:[84+di+2]
call dtoc_dword ;显示收入
pop dx
mov dl,20
mov cl,7
call show_str
mov ax,es:[84+84+bx]
call dtoc_word
mov dl,40 ;显示雇员数
mov cl,7
call show_str
mov ax,es:[84+di]
push dx
mov dx,es:[84+di+2]
div word ptr es:[84+84+bx] ;计算人均收入并显示
call dtoc_word
pop dx
mov dl,60
mov cl,7
call show_str
add di,4
add bx,2
add dh,1
pop cx
loop x1
mov ah,0
int 16h ;加上按任意键继续功能,可以直接双击运行
mov ax,4c00h
int 21h
编译链接程序,其运行效果如下:
实验总结
这个题目实际是前几个题目代码的整合,难点还是在于如何计算显示的行和列,如果错位了1个字节,显示的时候就可能出现重叠之类的情况。

还有要再写个dword型数据转ASCII字符的程序,不过有之前的经验,应该也不难。

通过此次的程序设计训练,基本上对之前所学的所有知识都有了一个系统性的掌握。

相关文档
最新文档