您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 【原创】汇编考前终极攻略----JRH
Author:JRHfromXJTUCS092011-7-10汇编语言考前总结第一章基础知识【大纲要求】1.掌握常用的各种进制数的表示、转换规则和运算;2.掌握带符号数的码制表示方法及其补码运算;3.熟悉数据的表示范围;4.了解计算机存取信息的基本数据类型;5.了解计算机中字符的表示;6.熟悉几种基本的逻辑运算;7.什么叫汇编语言。【思考题】1.计算机内部是采用什么计数制来表示数和信息的?二进制2.十进制数转换为二进制数有几种方法?降冪法、除法3.二进制数和十六进制数是如何相互转换的?二进制到十六进制:从低到高四位一组,直接用十六进制数表示。4.计算机中如何表示正负数的?原码、反码、补码●5.计算机中的整数有几种表示方法?最常用的是哪一种码制?6.基本的逻辑运算包括哪几种运算?与、或、非、异或7.求补的运算规则是什么?除符号位,按位取反最后加一8.计算机中是采用什么代码来表示字符的?ASCII码第2章80X86计算机组织【大纲要求】1.熟悉计算机系统的组成;2.熟练掌握8086/8088CPU的寄存器组;3.掌握80X86CPU的寄存器组;4.掌握存储器地址的分段表示及其物理地址的计算;5.熟悉段的引用规定。1.微计算机系统一般包括哪两部分?硬件和软件2.8086微处理器主要由哪几部分组成?它们的功能是什么?算术逻辑部件ALU(arithmeticlogicunit):进行算术和逻辑运算。控制逻辑:负责全机的控制工作。工作寄存器:相当于运算器中的一个储存单元,存放计算过程中所需要或所得到的各种信息(地址、数据、中间结果)3.一个字节和一个字分别由几个二进制位组成?8位16位●4.在Intel系列微型机中是如何编址的?5.一个字节和一个字在存储器中是如何存储的?字节:8bit存放一个字节字:低位字节存入低地址,高位字节存入高地址6.字单元的地址是偶数或是奇数时,访问存储器有什么不同?字单元的地址用其低位地址表示,因为以偶地址访问(读/写)存储器,,一次读一个字节长度。如果字单元地址是偶数,那么访问一个字只需一次,而如果字单元地址是奇数,访问一个字序两次。7.8086微型机可以访问的最大存储空间是多少?应用几位地址来表示?1M20位地址8.在8086微机中,如何提供20位的地址?如何形成物理地址?储存器采用分段管理,一个内存单元地址由段基址:偏移量两个逻辑地址来描述。物理地址=10H×段寄存器+偏移地址9.8086微机中,存储器空间可分为几种逻辑段?每段的可寻址空间是多大?段地址存放在哪些寄存器中?4种。64K。代码段CS寄存器、数据段DS寄存器、堆栈段SS寄存器、附加段ES寄存器10.CPU中有哪几类寄存器,它们各自的专门用途是什么?数据寄存器:AX:累加器,乘除指令存放操作数,I/O指令使用其与外设传送信息BX:通用,常用作基址寄存器CX:计数器(移位指令、循环指令、传处理指令)DX:双字长运算(和AX组合)存放高位字,I/O操作存放I/O端口地址(对256~65535号端口读写时用)。指针及变址寄存器:SP:存放当前堆栈栈顶偏移量,总是和SS堆栈寄存器配合BP:存放地址偏移量或数据,缺省和SS配合DI:存放串数据的目的地址偏移量(或数据)若存放偏移量时,缺省情况与DS配合。SI:存放串数据的原地址偏移量(或数据)若存放偏移量时,缺省情况与DS配合控制寄存器:IP:存放代码段中的指令地址偏移量,始终指向下一条即将执行的指令的首地址,控制器根据指令字长自动增加FLAGES段寄存器:CS:存放当前正在运行的程序代码段基地址DS:指定当前运行程序所使用的数据段基地址SS:指定堆栈段位置,存放堆栈段的基地址ES:指定当前运行程序所使用的附加数据段基地址11.条件码标志和控制标志各包含几位?它们每位所表示的意义是什么?条件码标志位用于记录程序运行结果的状态信息,共6位:OF溢出标志SF符号标志ZF零标志CF进位标志AF辅助进位标志PF奇偶标志控制标志位控制处理器的操作,要通过专门的指令才能使控制标志位变化。DF方向标志IF中断标志TF陷阱标志12.什么是DOS和BIOS功能调用?第三章80x86的指令系统和寻址方式●1.什么是指令和指令系统?指令在什么时候由哪部分来执行?指令:指令系统:一组指令集。计算机所能执行的所有指令的集合就是指令系统。算术逻辑单元执行。2.8086汇编语言指令由几部分组成?各部分的作用是什么?操作码字段:指示计算机所要做的操作操作数字段:指出在指令操作过程中所需要的操作数3.8086汇编语言指令可以有几个操作数?指令中指定的操作数可能存放在哪里?零地址指令:ret一地址指令:incax二地址指令:movax,[2000h]三地址指令:很少用存放在:指令中、寄存器中、内存单元中、I/O接口寄存器中4.什么是寻址方式?8086汇编语言提供了几种寻址方式?1.(太哲学了!!!!)2.(这样的问题很×疼)寻址方式实际上非常之容易:记住四个寄存器:BX,BP;DI,SI;可以单独使用如MOVAX,[BX]MOVAX,[SI]组合使用,但只能BX,BP中的一个和DI,SI中的一个搭配如MOVAX,[BX+SI]而MOVAX,[BX+BP]及MOVAX,[DI+SI]是错误的!当然可以加常数如MOVAX,[BX+SI+5]知道这些后自己再对应其名字吧,什么“基址变址”什么×××.会用就行。5.各种寻址方式所确定的有效地址是什么?偏移地址6.在存储器寻址方式中,为什么有时候要使用段跨越前缀?段跨越前缀用以指定段寄存器7.8086机器语言指令由哪几个字节组成?为什么说汇编语言指令与机器指令是一一对应的?8086机器语言指令是多字节指令,一条指令可以由1~7个字节组成。具体见P498.8086的指令系统按功能可分为几组?数据传送指令,算术指令,逻辑指令,传处理指令,控制转移指令。9.每条指令的功能、助记符、所支持的寻址方式、对标志位的影响、需要预置的参数以及隐含使用的或限定使用的寄存器等。这个得好好看,看书吧。第四章汇编语言程序格式【大纲要求】1.了解机器语言和汇编语言的基本概念;机器语言:汇编语言:2.掌握汇编语言语句的种类;指令、伪操作(也叫伪指令)和宏指令3.掌握常用的伪指令;处理器选择伪操作:.8086段定义伪操作:完整段定义伪操作简化段定义伪操作数据定义及储存伪操作:DB、DW、DD、?、DUP、LABLE表达式赋值伪操作:EQU地址计数器与对准伪操作:$:指令中--当前所在汇编的指令的首地址;伪操作参数字段—地址计数器当前值ORG:设置当前地址计数器的值应用例:BUFFERLABELBYTEORG$+8相当于:BUFFERDB8DUP(?)EVEN:使下一个变量或地址开始于偶地址ALIGN:保证双字数组边界从4的倍数开始基数控制伪操作:.RADIXexpression4.掌握汇编语言语句的格式;名字操作操作数注释5.熟悉汇编语言程序的上机过程。编辑程序、汇编程序、连接程序、调试程序【学习目标】了解编辑程序、汇编程序、连接程序的功能及其输入、输出文件的类型;编辑程序文本文件-asm汇编程序-obj与lst连接程序-exe●了解汇编语言源程序的格式;●熟练掌握并运用段定义伪指令和数据定义及存储器分伪指令;●熟悉数值表达式书写规范;学会使用DEBUG调试程序一些命令:DTUR等等【思考题】:1.建立并运行一个汇编语言程序有几个操作步骤?编辑程序、汇编程序、连接程序、执行程序2.指令和伪指令的区别是什么?指令在程序运用期间会被计算机执行,而伪指令是在汇编程序对源程序进行汇编时处理的操作。3.在汇编语言程序中,段定义伪指令和数据定义伪指令起什么作用?(很哲学)段定义为指令作用:数据定义为指令作用:4.变量和标号的类型属性分别有哪几种?3种属性段、偏移及类型。对于标号:段(CS)、偏移、类型(near、far)对于变量:段、偏移、类型()●5.什么是表达式?表达式的优先级顺序是如何排列的?6.汇编语言的上机过程是什么?编辑程序、汇编程序、连接程序、调试程序7.汇编语言源程序一般由几个段组成?一般有数据段、代码段、堆栈段●8.汇编程序和连接程序的输入、输出文件有哪些?它们的作用是什么?汇编程序:输入:asm文件输出:obj文件连接程序:输入:obj文件(加上库文件和其他目标文件)输出:exe文件汇编程序主要作用:检查源程序;测出源程序中的语法错误并给出出错信息;产生源程序的目标程序,并可给出列表。第五章循环与分支程序设计【大纲要求】1.掌握汇编语言程序设计的基本步骤;2.熟练掌握顺序、分支和循环程序设计方法;3.掌握汇编语言程序常用的几种退出方法;4.DOS系统功能调用。【学习目标】了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。【思考题】1.编制一个汇编语言程序分哪几步?分析题意,确定算法根据算法,画出程序框图根据框图编写程序、上机调试程序2.循环程序有哪两种基本结构?由几部分组成?DO_WHILE与DO_UNTIL三部分:设置循环初始状态循环体循环控制部分●3.设计算法时对可能出现的边界情况如何考虑?4.如何设置逻辑尺?练习程序:assumeds:datadatasegmentxdw1,2,3,4,5,6,7,8ydw1,2,3,4,5,6,7,8zdw8dup(?)logic_ruledw5hdataendscodesegmentstart:movax,datamovds,axmovbx,0movcx,8movsi,0movdx,logic_rulenext:movbx,x[si]movbp,x[si]shrdx,1jconeaddbx,bpjmpshortresultone:subbx,bpresult:movz[si],bxaddsi,2loopnextmovax,4c00hint21hcodeendsendstart由于logic_rule设为00000101,实现在对x,y相应进行—+—+++++5.起泡排序算法用汇编语言如何实现?;冒泡排序;authorJRH;2011.7.10assumeds:datadatasegmentadw1,4,2,5,7,9,6,3dataendscodesegmentstart:movax,datamovds,axmovcx,8deccxlop1:pushcxmovdx,0movsi,0lop2:movbp,a[si]cmpbp,a[si+2]jnbgo_onxchgbp,a[si+2]mova[si],bpmovdx,1;标志位go_on:addsi,2looplop2popcxcmpdx,0jzoverlooplop1over:movax,4c00hint21hcodeendsendstart●6.如何理解数组排序算法中采用的折半查找法?7.如何使用跳跃表法实现CASE结构?例:;authorJRH;2011.7.10assumeds:datadatasegmentbranch_tabledwrout1,rout2,rout3,over,over,over,over,overjump_ruledw2h;00000010B,这里“跳”rout2.dataendscodesegmentstart:movax,datamovds,axleabx,branch_tablemovax,jump_rulekeep:shrax,1jnbnot_yet;IFCF=0jmpWORDptr[bx]rout1:movcx,1jmpoverrout2:movcx,2jmpoverrout3:movcx,3jmpovernot_yet:addbx,typebranch_tablejmpkeepover:movax,4c00hint21hcodeendsendstart第六章子程
本文标题:【原创】汇编考前终极攻略----JRH
链接地址:https://www.777doc.com/doc-2821330 .html