Intel处理器指令系统及汇编语言.ppt
《Intel处理器指令系统及汇编语言.ppt》由会员分享,可在线阅读,更多相关《Intel处理器指令系统及汇编语言.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据定义语句数据定义语句类型类型用途用途类型类型用途用途BYTE8位无符号整数位无符号整数FWORD48位整数位整数(可在保护模式可在保护模式下用作远指针下用作远指针)SBYTE8位有符号整数位有符号整数QWORD64位整数位整数WORD16位无符号整数位无符号整数(可在实模式下用可在实模式下用作近指针作近指针)TBYTE80位整数位整数SWORD16位有符号整数位有符号整数REAL432位位IEEE短实数短实数DWORD32位无符号整数位无符号整数(可在保护模式下可在保护模式下用作近指针用作近指针)REAL864位位IEEE长实数长实数SDWORD 32位有符号整数位有符号整数REAL10
2、80位位IEEE扩展精度实数扩展精度实数早期版本:早期版本:DB、DW、DD、DQ、DT1 语句格式语句格式名称名称 数据定义伪指令数据定义伪指令 初始值初始值,初始值初始值例:例:.datavalue1 BYTE 10hvalue2 BYTE?list1 BYTE 10,20,30,40 BYTE 50,60,70,80list2 BYTE 32,41h,00100010b,agreeting BYTE Good afternoon,0dh,0ah,0array WORD 5 DUP(?);5个未初始化的值个未初始化的值value3 DWORD 12345678h78h56h34h0000:
3、0001:0002:12h0003:Intel处理器采用小端顺序:处理器采用小端顺序:value3+value3+value3+value3+2符号常量符号常量不占用任何实际的存储空间。不占用任何实际的存储空间。n等号等号例:例:COUNT=500ESC_key=27array byte COUNT DUP(0)mov cx,COUNTmov al,ESC_keynEQU如如 maxintequ 0ffh3n计算数组和字符串的大小计算数组和字符串的大小例:例:list1 BYTE 10,20,30,40 List1Size=($-list1)myString BYTE This is a lo
4、ng string,BYTE Containing any number BYTE of characters,0dh,0ah MyString_len=($-myString)list2 WORD 1000h,2000h,3000h,4000h List2Size=($-list2)/24微机原理及接口技术第3章 Intel处理器指令系统及汇编语言三、数据传送、寻址和算数运算5本节要点本节要点n数据传送指令数据传送指令n加法和减法加法和减法n和数据传送相关的操作符和伪指令和数据传送相关的操作符和伪指令n间接寻址间接寻址nJMP和和LOOP指令指令6n立即操作数(立即操作数(immediate
5、)limm:8、16或或32位立即数位立即数limm8:8位立即数(字节)位立即数(字节)limm16:16位立即数(字)位立即数(字)limm32:32位立即数(双字)位立即数(双字)n寄存器操作数(寄存器操作数(register)lreg:任意的通用寄存器:任意的通用寄存器lsreg:16位段寄存器位段寄存器CS、DS、SS、ES、FS、GSlr8:AH、AL、BH、BL、CH、CL、DH、DLlr16:AX、BX、CX、DX、SI、DI、SP、BPlr32:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBPn内存操作数(内存操作数(memory)lmem:8、16或或32位内
6、存操作数位内存操作数(一)数据传送指令(一)数据传送指令 1.操作数类型操作数类型7n其它形式其它形式lr/m8:8位操作数(位操作数(8位通用寄存器或内存字节)位通用寄存器或内存字节)lr/m16:16位操作数(位操作数(16位通用寄存器或内存字)位通用寄存器或内存字)lr/m32:32位操作数(位操作数(32位通用寄存器或内存双字)位通用寄存器或内存双字)(一)数据传送指令(一)数据传送指令 1.操作数类型操作数类型8.datavar1 BYTE 55hvar2 BYTE 10hvar3 BYTE 0aah.codemov ax,datamov ds,axmov al,1040h;假设假设
7、var1位于偏移位于偏移1040h处处mov al,var1;使用使用var1的符号名的符号名mov al,var1;上一条语句的另一种写法上一条语句的另一种写法mov al,var1+2;直接偏移操作数直接偏移操作数(一)数据传送指令(一)数据传送指令 2.直接内存操作数直接内存操作数编译器会自动将名称转换为数字编译器会自动将名称转换为数字偏移,然后根据该偏移来寻址。偏移,然后根据该偏移来寻址。9mov destination,source回忆:回忆:C+或或Java中的赋值语句中的赋值语句dest=source;nMOV指令需要遵循的规则:指令需要遵循的规则:l两个操作数的两个操作数的尺寸
8、尺寸必须必须一致一致。l两个操作数不能同时为两个操作数不能同时为内存操作数内存操作数。l目的操作数目的操作数不能是不能是CS,EIP和和IP。l立即数立即数不能直接送至不能直接送至段寄存器段寄存器。(一)数据传送指令(一)数据传送指令 3.MOV指令指令10nMOV指令的具体格式:指令的具体格式:mov reg,regmov mem,regmov reg,memmov mem,immmov reg,immn段寄存器仅用于实地址模式下运行的程序。段寄存器仅用于实地址模式下运行的程序。mov r/m16,sregmov sreg,r/m16n内存之间的移动内存之间的移动通过寄存器暂存。通过寄存器暂
9、存。(一)数据传送指令(一)数据传送指令 3.MOV指令指令.datavar1 WORD?var2 WORD?.codemov ax,var1mov var2,ax11n含义:含义:move with zero-extendn格式:格式:movzx r32,r/m8movzx r32,r/m16movzx r16,r/m8(一)数据传送指令(一)数据传送指令 4.整数的零整数的零/符号扩展符号扩展 1)MOVZX指令指令1000110110001101000000000源操作数源操作数目的操作数目的操作数12例:例:(一)数据传送指令(一)数据传送指令 4.整数的零整数的零/符号扩展符号扩展
10、1)MOVZX指令指令mov bx,0A69Bhmovzx eax,bxmovzx edx,blmovzx cx,bl.databyte1 BYTE 9Bhword1 WORD 0A69Bh.code movzx eax,word1 movzx edx,byte1 movzx cx,byte1 13n含义:含义:move with sign-extendn格式:格式:movsx r32,r/m8movsx r32,r/m16movsx r16,r/m8(一)数据传送指令(一)数据传送指令 4.整数的零整数的零/符号扩展符号扩展 2)MOVSX指令指令1000110110001101111111
11、11源操作数源操作数目的操作数目的操作数mov bx,0A69Bhmovsx eax,bxmovsx edx,blmovsx cx,bleax=FFFFA69Bhedx=FFFFFF9Bhcx=FF9Bh例:例:14n含义:含义:exchange data,交换两个操作数的内容。,交换两个操作数的内容。n格式:格式:xchg reg,regxchg reg,memxchg mem,regn交换两个内存操作数:交换两个内存操作数:利用寄存器,利用寄存器,MOV与与XCHG结合使用。结合使用。mov ax,val1xchg ax,val2mov val1,ax(一)数据传送指令(一)数据传送指令
12、5.XCHG指令指令xchg ax,bxxchg ah,alxchg var1,bxxchg eax,ebx例:例:15(一)数据传送指令(一)数据传送指令 6.直接偏移操作数直接偏移操作数.dataarrayB BYTE 10h,20h,30h,40h,50h.codemov al,arrayB;AL=mov al,arrayB+1;AL=mov al,arrayB+2;AL=mov al,arrayB+20;AL=?注意:注意:nMASM并不要求一定要使用方括号。并不要求一定要使用方括号。lmov al,arrayB+1 等同于等同于 mov al,arrayB+1nMASM对有效地址没有
13、内建的范围检查模块。对有效地址没有内建的范围检查模块。10h20h30h16(一)数据传送指令(一)数据传送指令 6.直接偏移操作数直接偏移操作数.dataarrayW WORD 100h,200h,300h.codemov ax,arrayW;AX=100hmov ax,arrayW+2;AX=200h应用:数组元素的寻址应用:数组元素的寻址.dataarrayD DWORD 10000h,20000h.codemov eax,arrayD;EAX=10000hmov eax,arrayD+4;EAX=20000h17n含义:含义:increment、加、加1和和decrement、减、减1
14、。n格式:格式:inc reg/memdec reg/mem(二)加法和减法(二)加法和减法 1.INC和和DEC指令指令.datamyWord WORD 1000h.codeinc myWord;1001hmov bx,myWorddec bx;1000h18n将将同尺寸同尺寸的的源操作数源操作数和和目的操作数目的操作数相加,结果在相加,结果在目的目的操作数操作数中(不改变中(不改变源操作数源操作数)。)。n格式:格式:add 目的操作数目的操作数,源操作数源操作数(二)加法和减法(二)加法和减法 2.ADD指令指令.datavar1 DWORD 10000hvar2 DWORD 20000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Intel 处理器 指令系统 汇编语言
限制150内