欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Win32汇编语言-表达式与操作符课件.ppt

    • 资源ID:1290020       资源大小:256.83KB        全文页数:19页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Win32汇编语言-表达式与操作符课件.ppt

    宋军计算机学院信息安全系,表达式与操作符,2022/11/4,1,宋军表达式与操作符2022/10/91,主要内容,汇编语言开发环境MASM32汇编语言程序结构汇编语言的语句格式 汇编语言程序格式MASM伪指令,2022/11/4,2,主要内容汇编语言开发环境2022/10/92,变量,类型:字节型、字与双字、多字节,结构、枚举存储:全局变量、局部变量,定义全局变量的时候类型才可以用缩写,2022/11/4,3,变量类型:字节型、字与双字、多字节,结构、枚举定义全局变量的,全局变量,全局变量的作用域是整个程序,Win32汇编的全局变量定义在 .data或 .data?段内,可以同时定义变量的类型和长度,格式是:,变量名 类型 初始值1,初始值2,变量名 类型 重复数量 dup (初始值1,初始值2,),2022/11/4,4,全局变量全局变量的作用域是整个程序,Win32汇编的全局变量,全局变量的初始化,全局变量在定义中既可以指定初值,也可以只用问号预留空间在 .data?段中,只能用问号预留空间,因为 .data?不能指定初始值。实际运行的时候,未初始化的值是0。,word_Bufferdw 100 dup (1,2) ; 一组字,以0001,0002,0001,0002,的 ; 顺序在内存中重复100遍,一共是200个字。 szBuffer byte 1024 dup (?) ; 1 024字节的缓冲区 ; 在byte类型变量的定义中,用引号定义字符串和数值定义的方法混用 szText db Hello,world!,0dh,0ah,Hello again,0dh,0ah,0,2022/11/4,5,全局变量的初始化全局变量在定义中既可以指定初值,也可以只用问,局部变量,两个以上子程序都要用到的数据才被定义为全局变量统一放在数据段中,仅在子程序内部使用的变量则放在堆栈中 在进入子程序的时候,通过修改堆栈指针esp来预留出需要的空间,在用ret指令返回主程序之前,同样通过恢复esp丢弃这些空间 空间是临时分配的,所以无法定义含有初始化值的变量,对局部变量的初始化一般在子程序中由指令完成。,2022/11/4,6,局部变量两个以上子程序都要用到的数据才被定义为全局变量统一放,局部变量的定义,local伪指令必须紧接在子程序定义的伪指令proc后、其他指令开始前 Win32汇编默认的类型是dword,如果定义dword类型的局部变量,则类型可以省略。当定义数组的时候,可以 括号括起来,不能使用定义全局变量的dup伪指令。局部变量不能和已定义的全局变量同名。在不同的子程序中可以有同名的局部变量。局部变量的起始值是随机的,是其他子程序执行后在堆栈里留下的垃圾,local 变量名1重复数量:类型,变量名2重复数量:类型,2022/11/4,7,局部变量的定义local 变量名1重复数量,数值表达式,数值表达式一般是指由运算符连接的各种常数所构成的表达式汇编程序在汇编过程中计算表达式,最终得到一个数值程序运行之前,就已经计算出了表达式;所以,程序运行速度没有变慢,但增强程序的可读性MASM对除伪指令外各种汇编时处理的指令统称为操作符(Operator),2022/11/4,8,数值表达式数值表达式一般是指由运算符连接的各种常数所构成的表,运算符,算术运算符:+ - * / MOD 移位运算符:SHL SHR逻辑运算符:AND OR NOT XOR 关系运算符:EQ NE GT LT GE LE高低分离符:HIGH LOW HIGHWORD LOWWORD,2022/11/4,9,运算符算术运算符:+ - * / M,算术运算符,实现加、减、乘、除、取余的算术运mov ax,3*4+5;等价于 mov ax,17MOD也称为取模,它产生除法之后的余数19 mod 7 = 5加 + 和减 - 运算符还可以用于地址表达式除加、减外,其他运算符的参数应是整数,2022/11/4,10,算术运算符实现加、减、乘、除、取余的算术运mov ax,3,逻辑运算符,实现按位相与、相或、异或、求反的逻辑运算 or al,03h AND 45h ;等价于 or al,01h,47H AND 0FH,NOT 56H计算结果分别为:7和0A9H,2022/11/4,11,逻辑运算符实现按位相与、相或、异或、求反的逻辑运算47H A,移位运算符,实现对数值的左移、右移的逻辑操作;移入低位或高位的是0格式为:数值表达式 SHL/SHR 移位次数mov al, 0101b SHL (2*2);等价于 mov al,01010000b,2022/11/4,12,移位运算符实现对数值的左移、右移的逻辑操作;移入低位或高位的,关系运算符,用于比较和测试符号数值MASM用0FFFFH(补码 -1)表示条件为真,用0000H表示条件为假,mov bx,(PORT LT 5) AND 20) OR (PORT GE 5)AND 30);当PORT5时,汇编结果为mov bx,20;否则,汇编结果为mov bx,30,2022/11/4,13,关系运算符用于比较和测试符号数值mov bx,(PORT,高低分离符,取数值的高半部分或低半部分HIGH、LOW从一个字数值或符号常量中得到高、低字节mov ah,HIGH 8765h;等价于mov ah,87h从MASM 6.0引入的HIGHWORD、LOWWORD取一个符号常量(不能是其他常数)的高字或低字部分 dd_value equ 0ffff1234h;定义一个符号常量mov ax,LOWWORD dd_value;等价于mov ax,1234h,2022/11/4,14,高低分离符取数值的高半部分或低半部分2022/10/914,其它操作符,类型属性操作符:TYPE长度属性操作符:LENGTH容量属性:SIZE强制属性操作符:PTR存储单元别名操作符:THIS,2022/11/4,15,其它操作符类型属性操作符:TYPE2022/10/915,运算符与操作符的优先级,() LENGTH SIZEPTR OFFSET SEG TPYE THIS HIGE LOW* / MOD SHL SHR+ -EQ NE GT LT GE LENOTANDOR XOR,高低,2022/11/4,16,运算符与操作符的优先级() LE,地址表达式,地址表达式是计算存储单元地址的表达式,它可由标号、变量名和由括号括起来的基址或变址寄存器组成。其计算结果表示一个存储单元的地址,而不是该存储单元的值。,B1,B1+3,W1+1,mov al, B1mov al, B1+3mov ax, W1+1,B1+3,2022/11/4,17,地址表达式地址表达式是计算存储单元地址的表达式,它可由标号、,地址操作符,取得名字或标号的段地址和偏移地址两个属性 将括起的表达式值作为存储器地址$当前偏移地址OFFSET 名字/标号 返回名字或标号的偏移地址 : 采用指定的段地址寄存器 SEG 名字/标号 返回名字或标号的段基址,2022/11/4,18,地址操作符取得名字或标号的段地址和偏移地址两个属性2022/,.386.model flat, stdcalloption casemap:noneinclude windows.incinclude kernel32.incincludelib kernel32.lib.dataB1BYTE01h, 02hDBABCDW1 WORD1234h, 5678h.codestart:mov al, B1mov al, B1+1mov ax, W1+1mov eax, offset W1mov eax, $invoke ExitProcess, NULLend start,.text:00401000 public start.text:00401000 start proc near.text:00401000 mov al, byte_403000.text:00401005 mov al, byte_403001.text:0040100A mov ax, word_403007.text:00401010 mov eax, offset unk_403006.text:00401015.text:00401015 loc_401015:.text:00401015 mov eax, offset loc_401015.text:0040101A push 0 ; uExitCode.text:0040101C call ExitProcess.text:0040101C start endp.data:00403000 byte_403000 db 1.data:00403001 byte_403001 db 2.data:00403002 db 41h ; A.data:00403003 db 42h ; B.data:00403004 db 43h ; C.data:00403005 db 44h ; D.data:00403006 unk_403006 db 34h.data:00403007 word_403007 dw 7812h.data:00403009 db 56h,2022/11/4,19,.386.text:00401000,

    注意事项

    本文(Win32汇编语言-表达式与操作符课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开