汇编语言程序设计 相伟 第3章

汇编语言程序设计 相伟 第3章

ID:40248345

大小:602.50 KB

页数:81页

时间:2019-07-29

汇编语言程序设计 相伟 第3章_第1页
汇编语言程序设计 相伟 第3章_第2页
汇编语言程序设计 相伟 第3章_第3页
汇编语言程序设计 相伟 第3章_第4页
汇编语言程序设计 相伟 第3章_第5页
资源描述:

《汇编语言程序设计 相伟 第3章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、21世纪高等院校规划教材汇编语言程序设计相伟主编 徐小平李珍香副主编中国水利水电出版社第3章顺序程序设计本章主要讲解汇编语言中的常用机器指令和顺序程序设计方法。通过本章学习,读者应该掌握以下内容:数据传送指令算术运算指令逻辑运算和移位指令处理机控制指令顺序程序设计方法3.1数据传送指令数据传送是计算机中最基本、最重要的一种操作。数据传送指令主要负责把数据、地址或立即数传送到寄存器或存储单元中。它又可分为通用数据传送指令、地址传送指令、I/O指令和标志寄存器传送指令等四组。除标志寄存器传送指令外,均不影响标志位。本

2、节主要介绍通用数据传送指令和地址传送指令。3.1.1通用数据传送指令通用数据传送指令包括MOV、XCHG和XLAT三条指令。1.数据传送指令MOV指令格式:MOVdest,src功能:将源操作数传送至目的地址中,源操作数保持不变,即dest(src)。其中:MOV为操作码助记符;dest为目的操作数,可以是通用寄存器、段寄存器、存储单元;src为源操作数,可以是立即数、通用寄存器、段寄存器、存储单元。MOV指令可以实现CPU内部通用寄存器之间、寄存器和存储单元之间、立即数到存储单元、立即数到内部通用寄存器的数据

3、传送。具体传送路径如图3-1所示:图中箭头离开的操作数为源操作数,箭头指向的操作数为目的操作数。立即数段寄存器存储单元通用寄存器图3-1MOV指令传送路径(1)立即数到通用寄存器的传送立即数传送到通用寄存器主要用于给通用寄存器赋初值,立即数(8位或16位)与通用寄存器的类型必须匹配。立即数可以是各种数制(十进制、二进制、八进制、十六进制)的常数、ASCII字符和符号常数。例3-1:分析下列立即数到通用寄存器的传送指令。MOVAL,6;AL6,字节传送MOVAX,10;AX10,字传送MOVAL,1000H;非

4、法指令,1000H为字,AL为字节寄存器MOVCX,0FFH;CX0FFH,字传送(十六进制)MOVAL,1010B;AL00001010B,字节传送(二进制)MOVAL,‘$’;AL24H(2)通用寄存器之间的数据传送CPU内部通用寄存器之间可以相互传送,传送时要注意两操作数类型必须匹配,即同为字节型或同为字型。例3-2:分析下列各条指令。MOVAX,BX;AX(BX),字型MOVCL,AL;CL(AL),字节型MOVAL,CX;非法指令,两操作数类型不一致(3)通用寄存器与存储单元之间数据传送通用寄

5、存器与存储单元之间相互传送数据时,传送类型由通用寄存器类型来定。例3-3:分析下列各条指令。MOV[2000H],AL;[2000H](AL),字节型传送MOV[2000H],AX;[2000H](AL),[2001H](AH),字型传送MOVBH,[1050H];BH([1050H]),字节型传送MOVBX,[1050H];BL([1050H]),BH([1051H]),字型传送(4)通用寄存器与段寄存器之间、存储单元与段寄存器之间的数据传送由于段寄存器皆为16位寄存器,因此,通用寄存器与段寄存器之

6、间、存储单元与段寄存器之间只能是字传送。另外,CS段寄存器不能作为传送指令的目标操作数。例3-4:分析下列各条指令。MOVDS,AX;DS(AX)MOVBX,CS;BX(CS)MOVCS,AX;非法指令,不允许给CS寄存器赋值MOVDS,AL;非法指令,操作数的类型不匹配MOV[2000H],DS;将16位段寄存器DS的内容送入1000H(低字节)和1001H(高字节)单元中(5)立即数传送到存储单元当存储单元的类型不确定时,必须用BYTEPTR或WORDPTR属性操作符来指定存储单元的类型。例3-5:分析下

7、列各条指令。MOVBUF1,20;BUF1为字节变量MOVSUM,0FFFFH;SUM为字变量MOVBYTEPTR[1000H],8;字节型传送,表示将08传送到1000H单元中MOVWORDPTR[1000H],8;字传送,将08传送到1000H单元,将00传送到1001H单元MOV[2000H],10H;非法指令,无法确定操作类型①MOV指令不改变源操作数内容,不影响标志位。②源操作数和目的操作数应该有相同的类型,即必须同为字节型或同为字型。③代码段寄存器CS不能用作目的操作数,即不允许给CS赋值。④立即数不

8、能用作目的操作数,立即数也不能直接传送给段寄存器。以上介绍了MOV指令的各种形式,具体应用时要特别注意以下几点:例3-6:若要设置数据段寄存器DS的初值为2000H,不能直接用指令MOVDS,2000H可用如下两条指令表示:MOVAX,2000HMOVDS,AX例3-7:交换两个存储单元BUF1和BUF2的内容。MOVAX,BUF1;AX(BUF1)MOVBUF2,AX

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。