![[理学]《IBM-PC汇编语言》教案3课时.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/25/ee7fdb5c-ed46-4bc7-9d78-346f961078dc/ee7fdb5c-ed46-4bc7-9d78-346f961078dc1.gif)
![[理学]《IBM-PC汇编语言》教案3课时.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/25/ee7fdb5c-ed46-4bc7-9d78-346f961078dc/ee7fdb5c-ed46-4bc7-9d78-346f961078dc2.gif)
![[理学]《IBM-PC汇编语言》教案3课时.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/25/ee7fdb5c-ed46-4bc7-9d78-346f961078dc/ee7fdb5c-ed46-4bc7-9d78-346f961078dc3.gif)
![[理学]《IBM-PC汇编语言》教案3课时.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-1/25/ee7fdb5c-ed46-4bc7-9d78-346f961078dc/ee7fdb5c-ed46-4bc7-9d78-346f961078dc4.gif)
![[理学]《IBM-PC汇编语言》教案3课时.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-1/25/ee7fdb5c-ed46-4bc7-9d78-346f961078dc/ee7fdb5c-ed46-4bc7-9d78-346f961078dc5.gif)
已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言程序设计理论课教学进度表周次/日期08计本1班博学楼30408计本2班博学楼403周次/日期08计本1班博学楼30408计本2班博学楼40313月1日开学报到105月3日第十二讲第十三讲3月3日第一讲5月5日第十三讲23月8日第一讲第二讲115月10日第十四讲第十四讲3月10日第二讲5月12日第十五讲33月15日第三讲第三讲125月17日第十五讲第十六讲3月17日第四讲5月19日第十六讲43月22日第四讲第五讲135月24日第十七讲第十七讲3月24日第五讲5月26日第十八讲53月29日第六讲第六讲145月31日第十八讲第十九讲3月31日第七讲6月2日第十九讲64月5日清明节放假156月7日第二十讲第二十讲4月7日第七讲6月9日第二十一讲74月12日第八讲第八讲166月14日第二十一讲第二十二讲4月14日第九讲6月16日端午节放假84月19日第九讲第十讲17期末复习4月21日第十讲94月26日第十一讲第十一讲18期末考试4月28日第十二讲巢 湖 学 院 计 算 机 系 课 程 表20092010年学年度第二学期 授课教师:江家宝 教师职工号:12032节次星期一星期二星期三星期四上午第一二节汇编语言(第0116周)博学楼30408计本(1)班计算机网络(第0116周)明德楼201 07计本(2)班汇编语言(第0116周)单周(2)班/博学楼403双周(1)班/博学楼304计算机网络(第0116周)单周(1)班/明德楼104双周(3)班/明德楼206第三四节汇编语言(第0116周)博学楼40308计本(2)班计算机网络(第0116周)明德楼104 07计本(1)班 计算机网络(第0116周)明德楼206 07计本(3)班 计算机网络(第0116周)双周(2)班/明德楼201下午第五六节汇编试验(第0116周)敏行楼第6机房 08计本(1)班 第1组汇编试验(第0116周)敏行楼第6机房 08计本(2)班 第1组第七八节汇编试验(第0116周)敏行楼第6机房 08计本(1)班 第2组汇编试验(第0116周)敏行楼第6机房 08计本(2)班 第2组上课时间:上午 第一节(08:0008:45)、 第二节(08:5509:40)、第三节(10:0010:45)、 第四节(10:5511:40);下午 第五节(02:0002:45)、 第六节(02:5503:40)、第七节(03:5004:35)、 第八节(04:4505:30);各班班长联系方式:07计本(1)班班长 胡茂林 136 8565 6982;07计本(2)班班长 杨 阳 136 2555 8260;07计本(3)班班长 赵盼盼 158 5650 2402;08计本(1)班班长 张稼辉 138 6527 6335 ;08计本(2)班班长 王 健 139 6634 3920 ;目 录目 录第1讲:基础知识(3课时)第一章. 基础知识1.1、进位计数制与不同基数的数之间的转换1.2、二进制与十六进制运算规则1.3、计算机中数和字符的表示1.4、几种基本的逻辑运算第2讲:8086计算机组织(3课时)第二章. 8086计算机组织2.1、8086微处理器简介2.2、基于微处理器的计算机系统组成2.3、中央处理器(CPU)2.4、存储器的存储单元地址和存储内容2.5、外部设备第3讲:8086的寻址方式(3课时)第三章. 8086的指令系统和寻址方式3.1、8086的寻址方式3.2、程序的占用空间和执行时间第4讲:数据传送指令(3课时)3.3、8086的指令系统(一)第5讲:算术指令、逻辑指令和串处理指令(3课时)3.3、8086的指令系统(二)第6讲: 控制转移指令和处理机控制与杂项操作指令(3课时)3.3、8086的指令系统(三)第7讲:汇编语言程序格式(3课时)第四章. 汇编语言程序格式4.1、汇编程序功能简介4.2、伪操作与伪指令4.3、汇编语言程序格式第8讲:循环与分支程序设计方法(3课时)第五章. 循环与分支程序设计5.1、循环程序设计5.2、分支程序设计5.3、如何在实模式下发挥80386及其后继机型的优势第9讲:循环与分支程序的设计实例分析(3课时)第10讲:子程序设计方法(3课时)第六章. 子程序结构6.1、子程序的设计方法第11讲:子程序设计实例分析(3课时)6.2、子程序嵌套6.3、子程序的举例分析第12讲: 高级汇编技术(3课时)第七章. 高级汇编语言技术7.1、宏汇编7.2、重复汇编7.3、条件汇编第13讲:I/O设备的数据传送方式一(3课时)第八章. 输入输出程序设计8.1、I/O设备的数据传送方式8.2、程序直接控制I/O方式8.3、中断传送方式(一)第14讲:I/O设备的数据传送方式二(3课时)8.3、中断传送方式(二)第15讲:键盘I/O和显示器I/O(3课时)第九章. BIOS 和DOS中断9.1、键盘I/O9.2、显示器I/O第16讲:打印机I/O和串行通信口I/O(3课时)9.3、打印机I/O9.4、串行通信口I/O第十章. 图形与发声系统的程序设计10.1、显示方式10.2、视频显示存储器10.4、通用发声程序附录一:BCD码运算调整指令8 7第I页IBM-PC汇编语言程序设计第1讲第1讲:基础知识(3课时)一教学内容:1.1进位计数制与不同基数的数之间转换;1.2二进制数和十六进制数的运算;1.3计算机中数和字符的表示;1.4几种逻辑运算;二教学目标:1掌握不同进制数之间的转换方法。2掌握二进制数和十六进制数的运算方法; 3掌握计算机中数和字符的表示方法;4掌握几种基本的逻辑运算规则;三教学重点:1计算机中数与字符的表示;2几种基础的逻辑运算与十六进制数的运算;四教学难点;1补码的加法与减法;2字符的表示方法;3各种进制数之间的转换;五教学过程: 第一章. 基础知识1.1、进位计数制与不同基数的数之间的转换 1.1.1、二进制数:(1)任意进制数R进制:位权、基数、数码进位记数制基数数码位权二进制(B)20、1,八进制(Q)80、1、2、3、4、5、6、7,十进制(D)100、1、2、3、4、5、6、7、8、9,十六进制(H)160、1、.、9、A、B、C、D、E、F,(2)八进制与二进制数码对应关系 二进制000001010011100101110111八进制01234567(3)十六进制与二进制数码对应关系 二进制000000010010010001010110011110001001101010111100110111101111十六进制123456789ABCDEF1.1.2、各进制数之间的转换:(1)、任意进制R转化成十进制数Eg:1011100.10111B =92.71875D(2)、十进制数转换成其它进制数整数部分 = 除R倒取余; 小数部分 = 乘R顺取整;Eg:125.63D = 二进制和八进制具体过程省略1.1.3、二进制、八进制、十六进制之间的转换二进制是桥梁(1)二八进制互换:Eg:010 110.011 010 100 二进制B2 6 . 3 2 4 八进制Q即:10110.0110101B=26.324Q (2)二十六进制互换:Eg:0001 0110 .0110 1010 二进制B 1 6 . 6 A 十六进制H 即:10110.0110101B=16.6AH(3)八十六进制互换Eg:1 0 7 . 6 3 八进制Q 001 000 111 110 101 00 二进制B 4 7 . D 4 十六进制H即:107.63Q = 47.D4H;1.2、二进制与十六进制运算规则1.2.1、二进制运算规则(逢2向高位进1):(1)、加法规则0+0=0;0+1=1+0=1;1+1=0(向高位进1); (2)、乘法规则00=01=10=0; 11=1;实例分析: 1011.101B 1101.101B 101.11B+1101.011B 1011.111B 111.01B11001.000B 0001.110B 10111 00000 10111 10111 10111 101001.1011B 1.2.2、十六进制运算(逢16向高位进1):(1)、加法规则两个一位数之和S OA34DH,382FH;1.3、计算机中数和字符的表示1.3.1、数的补码表示:(1)、机器数在机器中,把一个数连其符号在内数值化表示的数;最高位为符号位:1负、0正(2)、机器数的补码定义(以下设机器字长为N+1):设:定点小数为X=0.,其补码表示为; 定点整数为X=,其补码表示为;定点小数补码定义 定点整数补码定义说明:在补码中,定点小数真值0.0的补码只有一种= 0000(N+1个0) 定点整数真值0的补码也只有一种=0000(N+1个0)Eg:X=0.0110 则X原=0.0110X补 = 00110X=0.1010 则X原=1.1010X补 = 20.1010= 10110 X=1101则X原=01101X补 = 01101X=1101则X原=11101X补 =1101 = 10011总结:求补码规则、X0时, X补=X原、X0时,X补=X原的符号位不变,其余各位变反后末位加1;或者说:把负数原码左右两边第一个1之间的数值位变反即可;(3)实例分析 Eg:机器字长为16位,写出N=117D的补码形式 解:N补 = |NB| = 1 0000 0000 0000 0000 0000 0000 0111 0101= 1111 1111 1000 1011 或 N原= (1000 0000 0111 0101)2 按位取反: 1111 1111 1000 1010B 末位加1: 1111 1111 1000 1011B 用十六进制表示: FF8BH即:(117D)补 = FF8BH(4)、补码的符号扩展规则 = 高位不足者补符号位 Eg:46补= 00101110 = 2EH 扩展成8位 =0000000000101110=002EH 扩展成16位46补=11010010=D2H 扩展成8位 =1111111111010010=FFD2H 扩展成16位(5)、字长为N位的机器数补码表示数的范围:;字长为N位的无符号机器数表示的范围:;1.3.2、补码的加法和减法:机器数用补码表示的目的是为了运算方便,先看下面的一个例子:X = +32D、Y = 96D 求(X+Y)的值和补码?显然:X原 = 0010 0000 B X补 = 0010 0000 B Y原 = 1110 0000 B Y补 = 1010 0000 BX原 + Y原 = 10000 0000 B 然而X补 + Y 补= 1100 0000 B结果显示:XY补 = X补Y补 (1)、求补运算:对一个二进制数的所有位按位取反后末位加1; 特征: (1)、补码加减运算规则: 加法规则:XY补=X补Y补 减法规则:XY补=X补Y补 说明:Y补由Y补求补一次得到;(3)、实例分析:已知X=32,Y=25 X补=00100000;Y补=11100111;Y补=00011001;X补=11100000 YX 如下: XY如下 11100111 Y补 00100000 X补 + 11100000 X补 + 00011001 Y补 1 11000111 YX补 000111001 XY补丢去 即: YX补 = 11000111B, X-Y补 = 00111001B;1.3.3、无符号整数:N位无符号整数表示的范围是:1.3.4、字符的机器表示:(1)、机器中字符分类 80*86采用美国信息交换标准代码(ASC),ASC码用一个字节表示,低7位为ASC值,最高位作校验位;1.4、几种基本的逻辑运算 逻辑变量取值“真假”为“1/0” ;(1)、“与”运算(AND)逻辑乘;符号为“*”或“” ; A*B或AB有零为零;(2)、“或”运算(OR)逻辑或;符号为“”或“”; AB或AB 有1为1;(3)、“非”运算(NOT逻辑非;符号为“”; 与 A相反;(4)、“异或”运算(XOR)逻辑异或;符号“”; AB 相同为0,不同为1; 实例分析:已知X=00FEH,Y=A70BH 求:=XY ,=XY ,=,= XY; 解:X=0000 0000 1111 1110 Y=1010 0111 0000 1011 =XY=0000 0000 0000 1010=000AH =XY=1010 0111 1111 1111=A7FFH =1111 1111 0000 0001=FF01H = XY=1010 0111 1111 0101=A7F5H 六课堂小结简述本次课的重点知识;七作业布置 P14:1.1(3)、 1.2(1)、 1.3(4)1.4(3)、 1.5(6)、 1.6(1)第97页IBM-PC汇编语言程序设计第2讲第2讲:8086计算机组织(3课时)一教学内容:2.18086微处理器;2.2基于处理器的计算机系统构成;2.3中央处理器;2.4存储器;2.5外部设备;二教学目标:1了解8086微处理器的发展史;2掌握微机系统的组成、术语和基本常识;3掌握微处理器的硬件组成和软件组成;4掌握微处理器中寄存组成及功能;5掌握存储单元的编址和寻址功能;6了解80x86微处理器的外设端口;三教学重点:1微机系统的组成及相关常识;2微处理器的硬件和软件组成;3各寄存器的功能;4存储单元的编址和寻址功能;四教学难点:1各寄存器组的组成和功能;2存储器、存储单元的编址和寻址功能;五教学过程:第二章. 8086计算机组织 2.1、8086微处理器简介 2.1.1、80x86微处理器的发展P表2.1(1968年美国Intel司成立)补充:1999年初 32位 Pentium芯片;注意各种芯片的位数; 2002年后 32 /64位 Pentium芯片; 2.1.2、基本术语:晶体管数、主频、三总线(数据、地址、控制)、总线宽度、主存储器(内存)、高速缓冲存储器、外部存储器;2.1.3、基本常识:(1)、地址总线宽度与寻址空间:8位二进制数1个字节B;2个字节1个字W;2个字双字D;地址线K根可寻址2个存储单元;若按“字节”编址2个字节(即2B);若按“字”编址2个字(即22B=2B);若按“双字”编址2个双字(即24B=2B); Eg:32位地址总线、按字节编址、则寻址2B=2KB=2MB=2GB=4GB;(2)、Chche容量:80386少许、804868KB Pentium8KB指令cache、8KB数据cache;Petium Pro8KB指令cache、8KB数据cache、356KB二级cache;Pentium、更多;2.2、基于微处理器的计算机系统组成2.2.1、硬件组成:CPU、存储器、I/O子系统;(1)、CPU组成:运算器、控制器、寄存器组等;、运算器算术逻辑部件(ALU):算术运算、逻辑运算; 、控制器产生控制信号、控制所有部件; 、寄存器组暂存指令运行所需的信息:操作数、地址、中间结果、最终结果、预取指令等;(2)、存储器多层存储结构:cache、内存等 (3)、I/0子系统I/O设备、大容量外部存储器;系统总线(三总线)连接CPU、存储器、I/O子系统;2.2.2、软件组成系统软件、用户软件(1)、系统软件厂家提供给用户的一组程序、为用户程序服务; 主要有:操作系统、I/O驱动程序、文件管理程序、文本编辑程序、翻译程序(汇编程序、编译程序、解释程序); 汇编语言 高级语言注意汇编语言与硬件有关、高级语言与硬件无关;(2)、用户软件用户编写的程序及相关的文档;2.3、中央处理器(CPU) 2.3.1、中央处理器CPU的组成(见上)CPU的任务:存放、翻译、执行需要运行的指令序列;2.3.2、80x86寄存器组 1、寄存器组分类:、程序可见寄存器 “通用寄存器”、“专用寄存器”、“段寄存器” 、程序不可见寄存器用户不可操作、CPU专用;2、通用寄存器组简介(8个) 分8位、16位、32位(1)、累加器(EAX、AX、AH、AL)除通用外、乘/除指令的操作数、算术运算结果和操作数、I/O与CPU传送信息;(2)、基址变址寄存器(EBX、BX、BH、BL)除通用外、存放基址(求偏移地址用);(3)、计数寄存器(ECX、CX、CH、CL)除通用外、计数功能;(4)、数据寄存器(EDX、DX、DH、DL)除通用外、与累加器组合成双字或四字长数(DX:AX,EDX:EAX)、存放I/O端口地址;(5)、堆栈指针寄存器(ESP、SP)除通用外,存放堆栈指针;(6)、基址指针寄存器(EBP、BP)除通用外、与SS联合确定”栈”中单元;(7)、源变址寄存器(ESI、SI)除通用外、与DS联用确定数据段中单元;(8)、目的变址寄存器(EDI、DI)除通用外、与DS联用确定数据段单元:注意:(7)、(8)有自增自减功能。 3、专用存储器简介(3个)16位/32位 (1)、指令指针寄存器(EIP/IP)存放代码段的偏移地址;它与段存储器CS联合确定代码段中指令的物理地址;(2)、堆栈指针寄存器(ESP/SP)同上;(3)、标志寄存器(EFLAGS/FLAGS)又名“程序状态寄存器”,存放条件运行时的“条件码标志、控制标志、系统标志”(状态字)、条件码标志程序运行结果和状态信息,以便用来作为程序转移与处理控制等条件;(6个标志)、溢出标志OF溢出时为1(OV),不溢出时为0(NV);、符号标志SF标识结果正负,正为0(PL),负为1(NZ); 、零标志ZF结果是否为0,是为1(ZR),否为0(NZ);、半进位标志AF运算时第3位是否发生进/借位,是为1(AC),否为0(NA);、奇偶标志PF结果中的1的个数是否为偶,是为1(PE),否为0(PO);、进位标志CF最高位是否发生进/借位,是为1(CY),否为0(NC);、控制标志(方向标记DF) DF=1 则表明变址寄存器SI和DI递减; DF=0则表明变址寄存器SI和DI 递增;、系统标志用于I/O、中断屏蔽、程序调试、任务切换等;主要有:TF陷阱标志;IF中断标志;IOPLI/O特权标志等;4、段寄存器组(4个/6个)简介都是16位:代码段CS、数据段DS、堆栈段CS、附加段ES、附加数据段(FS和GS);2.4、存储器的存储单元地址和存储内容2.4.1、存储单元的物理地址:Def:为了便于读写信息,内存中按照字节编址即每个字节有一个唯一编号,该编号位该单元的物理地址;注意:字节编址、二进制表示、十六进制书写;参见图(2.5)2.4.2、存储单元中的内容:def:某存储单元中存放的具体二进制信息;见下图实例:(20005H)= 9AH若X单元存放Y单元的地址,则Y单元的内容表示为:(Y)= (X)字节,字,双字,四字长内容在存储器中的存储形式低对低,高对高注意:对字,双字,四字单元的地址一律以最低字节地址表示:1220001H3420002H5620003H7820004H9A20005HBC20006HDE20007HFA20008HFB20009HEF2000AHDE2000BH Eg:(20001H)字节单元 = 12H; (20001H)字单元 = 3412H;(20001H)双字单元 = 78563412H;(20001H)四字单元 = 0FADEBC9A78563412H;2.4.3、实模式存储器寻址(寻址如何形成物理地址)(1)、def:实模式采用16位段地址和16位地址偏移形成20位物理地址;最大寻址空间1MB,最大分段为64KB的存储器寻址方式; def:保护模式采用16位段地址和32位偏移地址形成32位物理地址;最大寻址空间为4GB,最大分段为4GB的存储器寻址方式;(2)、存储器地址分段:提问:地址总线20根,数据总线16根(字长16位),如何提供20位地址值?方法:分析第27页地址分段方法;段地址(段基址)每一小段起始地址的高16位(低4位为0);偏移地址(有效地址:EA)段内相对于段起始地址的偏移值; 实模式为16位表示、保护模式32位表示;(3)、实模式寻址方式:16d*段基址 + 偏移地址 = 物理地址 16位 16位 20位左移4位后为20位(硬件自动实现)(4)、段寄存器(16位)专门存放段基址的寄存器; 、CS存放当前正在运行的程序段基址; 、DS存放当前正在运行的程序所用到的数据段基址; 、SS存放当前使用的堆栈段的栈底(高地址); 、ES存放附加的数据段基址;注意:、每个段寄存器定义的段可以独占64KB,也可重叠(见图2.9);、段寄存器与其对应存放偏移地址的寄存器之间有默认关系(见表2.3与表2.4); 2.4.4、保护模式下存储器寻址Def:逻辑地址段地址和偏移地址统称逻辑地址;保护模式寻方式16位选择器的值经过操作系统的地址转换操作变成32位的段地址,然后加上32位的偏移地址而形成了32位的物理地址;2.5、外部设备1、外部接口组成由一组“寄存器”及相关“控制电路组成” 、数据寄存器存放主机与外设交换的数据;、状态寄存器存放外设和接口的当前状态信号;、命令寄存器存放CPU给外设的控制命令; 2、Def:端口地址(又称“端口号” )外设寄存器的地址(即编号) 、编址方式独立编址、混合编址;、80x86I/O地址空间为64KB(即65536个B)3、外设的例行程序通过中断方式转入的子程序,它完成一定的I/O功能;分两种:BIOS和DOS;六课堂小结简述本次课的重点知识;七作业布置 P107:习题2.2、习题2.3、习题2.4、习题2.5、习题2.8;IBM-PC汇编语言程序设计第3讲 第3讲:8086的寻址方式(3课时)一教学内容:3.18086的寻址方式;3.2程序占用空间和执行空间;二教学目标:1熟练掌握80*86与数据有关的寻址方式;2熟练掌握熟练掌握80*86与地址有关的寻址方式;3了解汇编程序的占用时间和执行时间;三教学重点:180*86处理器与数据有关的十种寻址方式;280*86处理器与地址有关的四种寻址方式;四教学难点:180*86处理器与数据有关的相对基址寻址、比例变址寻址、基址比例变址寻址和相对基址比例变址寻址;280*86处理器与地址有关的段内间接寻址、段间直接寻址、段间间接寻址; 五教学过程:第三章. 8086的指令系统和寻址方式 3.1、8086的寻址方式 1、80*86指令系统的基础知识Def:指令系统每种计算机中所有指令的集合(小型机:百余种)(1)、操作码指令计算机需要完成的具体操作,用“助记符”表示;每一条指令有且仅有一个,并且与机器中二进制代码一一对应(2)、操作数指明指令执行具体操作过程中所操作的对象;操作数可以有“零个、一个、二个、三个”,可以使操作数本身操作数的部分后全部地址或其他相关信息;(3)、指令的分类按操作数个数分类:零地址指令、一地址指令、二地址指令、三地址指令;按功能分类:数据传送指令、算术指令、逻辑指令、串操作指令、程序控制指令、处理机控制与杂项操作指令;2、80*86寻址方式分类: 寻址的中心问题如何确定“偏移地址”的值; 第一类:与数据有关的十种方式立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址、比例变址寻址、基址比例变址寻址、相对基址比例变址寻址;第二类:与转移地址有关的四种寻址方式段内直接寻址、段内间接寻址、段间直接寻址、段间间接寻址;说明:同一指令的多个操作数可各自采用不同的寻址方式。3.1.1、十种与数据有关的寻址方式概述:1、立即寻址(immediate addressing)操作数(此处叫立即数”)直接在指令中;(仅出现在源操作数字段)实列:MOV AH,5MOV AH, 05H MOV AX,3064HMOV EAX,12345678H说明:立即数可以是二进制、十进制、十六进制,但必与目的操作数等长;2、寄存器寻址(REGister addressing)操作数存放在寄存器中,指令指明寄存器名;实例: MOV AX, BX /把寄存器BX中的内容送到寄存器AX中注意:可用作寄存器寻址的寄存器只能是“通用寄存器” 8位:AH、 AL 、 BH、 BL 、 CH 、 CL、 DH、 DL16位:AX 、BX 、CX 、DX 、SI 、DI、SP 、BP32位:EAX 、EBX、 ECX 、EDX、 ESI 、EDI 、ESP、 EBP基础知识简介:(1)、有效地址(EA)指令直接或间接指明的存放操作数的内存单元的偏移地址: EA = 基址+(变址*比例因子)+位移量注意:上述公式中四种成分的不同组合形成八种寻址方式基址(base)存放在“基址寄存器”中;可正可负;主要用于存放数组或字符串首址;16位基址寄存器:BX、BP;32位基址寄存器:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI;(即:8个32位通用寄存器)变址(index)存放在“变址寄存器”中;可正可负;主要用于访问数组中某元素或字符串中某一元素;16位变址寄存器:SI、DI;32位变址寄存器:除ESP以外的七个32位通用寄存器;比例因子(scale factor)只与变址寄存器联用;只能为1、2、4或8;注意:只能是32位寻址,没有16位寻址; 位移量(displacement)存放在指令中的一个8位、16位、32位地址偏移部分;可正可负;(2)、段超越前缀形成物理地址时,段寄存器与访存类型之间有默认匹配关系,但有时可以使用段超越前缀来改变默认关系(参见P39表3.2);格式:MOV AX,ES:2000H 特别注意:但以下三种情况不允许使用段超越前缀串处理指令的目的串ES段;取指指令CS段;PUSH的目的和POP的源SS段;3、直接寻址(direct addressing)EA仅包含位移量,且位移量直接在指令中;讲解:eg3.5,eg3.6;4、寄存器间接寻址(REGister relative addressing)EA仅包含“基址寄存器”或“变址寄存器”内容一部分;格式:MOV AX,BX或MOV AX,ES:BX讲解:eg3.7,eg3.8; 5、寄存器相对寻址(REGister indirect addressing)(又称“直接变址寻址”方式)EA为“基址”或“变址”与位移量之和;格式:MOV AX,COUNTSI或MOV AX,3000HSI 16位 16进制 MOV AX,COUNT+SI 或MOV AX,3000H+SI MOV AX,ES:COUNTSI或MOV AX,ES:COUNT +SI6、基址变址寻址(base indexed addressing )EA=基址+变址;格式:MOV AX,BXSI或MOV AX,BX +SIMOV AX,ES:BXSI或MOV AX,ES: BX+SI7、相对基址变址寻址(relative based indexed addressing)EA=基址+变址+位移量;格式:MOV AX,COUNTBXSI或MOV AX,0246 BXSI MOV AX,COUNTBX+SI 或MOV AX,0246BX+SI MOV AX,COUNT+BX+SI或MOV AX, 0246+BX+SI MOV AX,ES:COUNTBXSI或MOV AX,ES:0246+BX+SI讲解:eg3.118、相对比例变址寻址(relative scaled indexed addressing) EA=变址比例因子+位移量格式: MOV EAX,MASKESI*4 或MOV EAX,MASK+ESI*4讲解:eg3.129、基址比例变址寻址(based scaled indexed addressing)EA=变址比例因子+基址;格式:MOV EBX,EAXEDX*8 或MOV EBX,EAX+EDX*8 或 MOV EBX,ESPEAX*2 10、相对基址比例变址寻址(relative based scaled indexed addressing)EA=基址+变址*比例因子+位移量;格式:MOV EAX,TABLEEBPEDI*4 或MOV EAX,TABLE+EBP+EDI*4 32位 32位3.1.2与转移地址相关的寻址方式在“转移指令”和“子程序调用”等指令中用于确定转向的地址;1、段内直接寻址(IP)(IP)+位移量,CS值不变格式:JMPNEAR PTP PROGIA 近跳转 16位/32位位移 JMPSHORT QUEST短跳转 8位位移2、段内间接寻址(IP)EA, CS值不变格式:JMP BX JMP WORD PTRBP+TABLEJMP DWORD PTREBP+TABLE 注意:指令EA中是除立即数以外的任何寻址方式取得的16/32位偏移地址;3、段间直接寻址指令直接指明转向的段基址和偏移地址,CS和IP都变化;格式:JMP FAR PTR NEXT功能;(CS) NEXT所在段的基址;(IP) NEXT所在段的段内偏移;即转到NEXT所在位置;4、段间间接寻址取EA所指内存单元的低字内容送给IP、高字送给CS;格式:JMP DWORD PTR BX /32位寻址类同;EBXJMP DWORD PTR BX+MARK /32位寻址类同;EBXJMP DWORD PTR BX+SI /32位寻址类同;EBX注意:EA是除立即数寻址和寄存器寻址以外的任一寻址方式获得的有效地址实例分析:(BX)=1234H、(DX)=2000H、MARK=0101HJMP DWORD PTR BX+MARK执行如下: (IP)(DX)*16d +(BX)+ MARK)=(21335H)3412H;(CS)(DX)*16d +(BX)+ MARK2)=(21337H)7856H;3.2、程序的占用空间和执行时间3.2.1、程序占用空间变长指令:指令长度取决于指令类型和寻址方式;无段超越时:16位格式指令占17个字节;32位格式指令占114个字节;3.2.2、程序运行时间取决于以下各个因素:主频、体系结构、总线速度、外设速度等等;六课堂小结 简述本次课的重点知识;七作业布置 P33:习题3.1、习题3.4、习题3.5;IBM-PC汇编语言程序设计第4讲 第4讲:数据传送指令(3课时)一教学内容:3.3.1数据传送指令;二教学目标:1掌握通用数据传送指令、累加器专用传送指令的格式与功能;2掌握地址传送指令、标志寄存器传送指令和类型转换指令格式与功能;三教学重点:1通用数据传送指令、累加器专用传送指令的格式与功能;2地址传送指令、标志寄存器传送指令和类型转换指令的格式与功能;四教学难点:1通用数据传送指令、累加器专用传送指令的功能;2地址传送指令、标志寄存器传送指令和类型转换指令的功能;五教学过程:3.3、8086的指令系统(一)8086指令系统按功能分类数据传送指令、算术指令、逻辑指令、串处理指令、程序控制转移、处理机控制指令;3.3.1、数据传送类指令把“立即数、地址、存储单元中的数据”传送给寄存器或内存单元;总共分五种(25个)指令;通用数据传送指令 XCHG(交换);MOV(传送)、MOVSX( 带符号传送)、MOVZX(带零扩展传送);PUSH(进栈)、POP(出栈)、PUSHA/PUSHAD(所有通用寄存器入栈)、POPA/POPAD(所有通用寄存器出栈);累加器专用传送指令IN(输入)、OUT(输出)、XLAT(换码);地址传送指令LEA(有效地址寄存器)、LDS(指针送寄存器和DS)LES(指针送寄存器和ES)、LSS(指针送寄存器和SS)LFS(指针送寄存器和FS)、LGS(指针送寄存器和GS)标志寄存器传送指令 LAHF(标志送AH)、SAHF(AH送标志寄存器)DUSHF/DUSHFD(标志入栈)POPF/POPFD(标志出栈)类型转换指令CBW(字节转换成字)、CWD/CWDE(字转换成双字)CDQ(双字转换成四字)、BSWAP(字节交换)通用数据传送指令8条指令符号说明DST(目的操作数)、SRC(源操作数)、DATA/IMM(立即数)MEM(内存单元)、REG(通用性寄存器)、SEGREG (段寄存器) ACC(累加器)1、普通传送指令MOV DST,SRC (不影响标志位)具体格式MOV MEM /REG1,MEM /REG2MOV MEM, ACCMOV MEM /REG,SEGREGMOV ACC,MEMMOV MEM /REG,DATAMOV SEGREG,MEM / REG 不能是CS,且不屏蔽中断功能(DST)(SRC);总结如下图:实例分析eg3.20:MOV AX,DATA_SEG 把段基址送入段寄存器(如DS)必须通MOV DS,AX 过某一通用寄存器(REG)eg3.21:MOV AH,E 把立即数E的ASCII码值送入AH中eg3.22:MOV BX, offset TABLE把TABLE的偏移地址(不是内容)送BXoffset 是“属性操作符”功能是取符号的地址值;2、带符号扩展传送指令MOVSX DST,SPC(不影响标志位)具体格式MOVSX REG1,REG2 REG1为16位时,REG2为8位 REG1为32位时,REG2为16位 MOVSX REG32,mem16 REG32为32位,men16为16位功能(DST) 符号扩展(SRC)/8位符号扩展成16位、16位符号扩展成32位,符号扩展就是高8/16位一律补符号位;实例分析eg3.25,eg3.263、带零扩展传送指令MOVZX DST SRC(不影响标志位)具体格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 子罕辞玉的课件
- 年月日说课课件
- 年度安全培训调查汇报
- 年底安全培训要点总结课件
- 威驰及竞品课件
- 年后复工安全培训
- 玉溪市统一遴选和选调公务员笔试真题2024
- 威尼斯的小艇课件近义词
- 常用版固定期限聘用合同书5篇
- 平面设计配色培训课件
- 口耳目手足课件
- 2024-2025学年湖北省武汉二中广雅中学九年级上学期9月月考数学试题及答案
- 箱式变电站技术规范应答
- 2024年新北师大版七年级上册数学教学课件 第三章 整式及其加减 1 代数式 第1课时 代数式
- 2024 年甘肃省职业院校技能大赛高职组公共管理与服务类人力资源服务赛项竞赛规程
- NB-T+35056-2015-水电站压力钢管设计规范
- 集成电路制造工艺原理集成电路制造工艺原理模板
- 访学归来讲座课件
- 平行四边形的面积集体备课发言稿
- 《肠造口术后并发症护理研究进展综述》7400字
- 学校食堂食品安全主体责任
评论
0/150
提交评论