用户登录
用户注册

分享至

汇编qwordptr

  • 作者: 妖娆的童童
  • 来源: 51数据库
  • 2020-04-21

1.汇编中的word ptr里的ptr是什么意思

ptr -- pointer (指针)缩写。

汇编里面 ptr 是规定的字 (保留字)。

mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,不用wordmov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。

由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!

扩展资料;

优点

汇编语言作为机器语言之上的第二代编程语言,它也有很多优点:

1,可以轻松的读取存储器状态以及硬件I/O接口情况。

2,编写的代码因为少了很多编译的环节,可以能够准备的被执行。

3,作为一种低级语言,可扩展性很高 。

缺点

1,因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难

2,因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易

3,就算完成了一个程序,后期维护时候也需要耗费大量的时间。

4,因为机器的特殊性造成了代码兼容性差的缺陷。

参考资料来源:百度百科-汇编语言

2.汇编 fistp qword

fistp是一条FPU浮点指令,作用是将st(0)中的浮点数以整数的形式存放到操作数指向的内存中,并在寄存器栈中弹出一个数据.st(0)是FPU中的寄存器

我收集的关于浮点运算的资料:

/self.aspx/TEMP/Float.rar

(这个东西我都在百度知道用好几次了- -)

这个是Intel的软件开发者参考,非常权威:

/products/processor/manuals/index.htm

Instruction Set Reference里面有指令的介绍

3.问个很菜鸟的问题 刚接触汇编 JMP NEAR PTR OPD 中的PTR是什么

ptr是临时的类型转换,相当于C语言中的强制类型转换

cmp word ptr[si],'#'

是用si所指向的内存的连续两个字节与#比较

要是改成

cmp byte ptr[si],'#'

那就是用si指向的那个存储单元的内容(一个字节)与#比较了

jmp near ptr opd

是无条件转移指令,转移到段内的标号opd所标识的位置(临时说明成近类型)

若是

jmp far ptr opd

那就是转移到另外一个代码段的opd所标识的位置了(远类型)

不管用在什么位置,ptr的作用就是临时指定类型

可以放在ptr前面的类型有byte(字节)、word(字)、dword(双字)、qword(四字)、tbyte(十字节)、far(远类型)和near(近类型)

4.MOV EAX,DWORD PTR SS:[EBP

只是默认情况下CS DS SS的开始地址一样而已,没听说过抛弃SS。

x86环境访问栈就得用SS,这不是Windows一个软件能说了算的。dword ptr表示内存操作数是4个字节(Double-WORD PoinTeR,双字指针),还有word ptr表示2字节,byte ptr表示一字节,qword ptr表示8字节。

一般只有目标是内存源是即时数的时候才需要明确写出来:mov dword ptr [eax], 0因为不写的话根本判断不出来要写几个字节,编译器默认会处理成byte ptr。

转载请注明出处51数据库 » 汇编qwordptr

软件
前端设计
程序设计
Java相关