Intel处理器指令系统及汇编语言.ppt
《Intel处理器指令系统及汇编语言.ppt》由会员分享,可在线阅读,更多相关《Intel处理器指令系统及汇编语言.ppt(39页珍藏版)》请在三一办公上搜索。
1、1,数据定义语句,早期版本:DB、DW、DD、DQ、DT,2,语句格式名称 数据定义伪指令 初始值,初始值例:.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 12345678h,3,符号常量,不占用任何实际的存储空间。等号例:COUNT=500ESC_key=27array byte CO
2、UNT DUP(0)mov cx,COUNTmov al,ESC_keyEQU如 maxintequ 0ffh,4,计算数组和字符串的大小例:list1 BYTE 10,20,30,40 List1Size=($-list1)myString BYTE This is a long string,BYTE Containing any number BYTE of characters,0dh,0ah MyString_len=($-myString)list2 WORD 1000h,2000h,3000h,4000h List2Size=($-list2)/2,微机原理及接口技术第3章 In
3、tel处理器指令系统及汇编语言,三、数据传送、寻址和算数运算,6,本节要点,数据传送指令加法和减法和数据传送相关的操作符和伪指令间接寻址JMP和LOOP指令,7,立即操作数(immediate)imm:8、16或32位立即数imm8:8位立即数(字节)imm16:16位立即数(字)imm32:32位立即数(双字)寄存器操作数(register)reg:任意的通用寄存器sreg:16位段寄存器CS、DS、SS、ES、FS、GSr8:AH、AL、BH、BL、CH、CL、DH、DLr16:AX、BX、CX、DX、SI、DI、SP、BPr32:EAX、EBX、ECX、EDX、ESI、EDI、ESP、E
4、BP内存操作数(memory)mem:8、16或32位内存操作数,(一)数据传送指令 1.操作数类型,8,其它形式r/m8:8位操作数(8位通用寄存器或内存字节)r/m16:16位操作数(16位通用寄存器或内存字)r/m32:32位操作数(32位通用寄存器或内存双字),(一)数据传送指令 1.操作数类型,9,.datavar1 BYTE 55hvar2 BYTE 10hvar3 BYTE 0aah.codemov ax,datamov ds,axmov al,1040h;假设var1位于偏移1040h处mov al,var1;使用var1的符号名mov al,var1;上一条语句的另一种写法m
5、ov al,var1+2;直接偏移操作数,(一)数据传送指令 2.直接内存操作数,编译器会自动将名称转换为数字偏移,然后根据该偏移来寻址。,10,mov destination,source回忆:C+或Java中的赋值语句dest=source;MOV指令需要遵循的规则:两个操作数的尺寸必须一致。两个操作数不能同时为内存操作数。目的操作数不能是CS,EIP和IP。立即数不能直接送至段寄存器。,(一)数据传送指令 3.MOV指令,11,MOV指令的具体格式:mov reg,regmov mem,regmov reg,memmov mem,immmov reg,imm段寄存器仅用于实地址模式下运行
6、的程序。mov r/m16,sregmov sreg,r/m16内存之间的移动通过寄存器暂存。,(一)数据传送指令 3.MOV指令,.datavar1 WORD?var2 WORD?.codemov ax,var1mov var2,ax,12,含义:move with zero-extend格式:movzx r32,r/m8movzx r32,r/m16movzx r16,r/m8,(一)数据传送指令 4.整数的零/符号扩展 1)MOVZX指令,13,例:,(一)数据传送指令 4.整数的零/符号扩展 1)MOVZX指令,mov bx,0A69Bhmovzx eax,bxmovzx edx,bl
7、movzx cx,bl,.databyte1 BYTE 9Bhword1 WORD 0A69Bh.code movzx eax,word1 movzx edx,byte1 movzx cx,byte1,14,含义:move with sign-extend格式:movsx r32,r/m8movsx r32,r/m16movsx r16,r/m8,(一)数据传送指令 4.整数的零/符号扩展 2)MOVSX指令,mov bx,0A69Bhmovsx eax,bxmovsx edx,blmovsx cx,bl,eax=FFFFA69Bhedx=FFFFFF9Bhcx=FF9Bh,例:,15,含义:
8、exchange data,交换两个操作数的内容。格式:xchg reg,regxchg reg,memxchg mem,reg交换两个内存操作数:利用寄存器,MOV与XCHG结合使用。mov ax,val1xchg ax,val2mov val1,ax,(一)数据传送指令 5.XCHG指令,16,(一)数据传送指令 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=?,注意:MASM并不要求一
9、定要使用方括号。mov al,arrayB+1 等同于 mov al,arrayB+1MASM对有效地址没有内建的范围检查模块。,10h,20h,30h,17,(一)数据传送指令 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=20000h,18,含义:increment、加1和
10、decrement、减1。格式:inc reg/memdec reg/mem,(二)加法和减法 1.INC和DEC指令,.datamyWord WORD 1000h.codeinc myWord;1001hmov bx,myWorddec bx;1000h,19,将同尺寸的源操作数和目的操作数相加,结果在目的操作数中(不改变源操作数)。格式:add 目的操作数,源操作数,(二)加法和减法 2.ADD指令,.datavar1 DWORD 10000hvar2 DWORD 20000h.codemov eax,var1add eax,var2;30000h,影响的标志位:CF、ZF、SF、OF、A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Intel 处理器 指令系统 汇编语言
链接地址:https://www.31ppt.com/p-6508289.html