C语言

far:远指针

在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。

near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。

far指针的长度是32位,含有一个16位的基地址和16位的偏移量,将基地址乘以16后再与偏移量相加,(所以实际上far指针是20位的长度。)即可得到far指针的1M字节的偏移量。所以far指针的寻址范围是1M字节,超过了一个段64K的容量。例如一个far指针的段地址为0x7000,偏移量为0x1224,则该指针指向地址0x71224。如果一个far指针的段地址是0x7122,偏移量为0x0004,则该指针也指向地址0x71224。

如果没有指定一个指针是near或far,那么默认是near。所以far指针要显式指定。far指针工作起来要慢一些,因为每次访问一个far指针时,都要将数据段或程序段的数据交换出来。另外,far指针的运算也比较反常,例如上面讲到的far指针指向同一个地址,但是比较的结果却不相同。

什么时候使用far指针?

当使用小代码或小数据存储模式时,不能编译一个有很多代码或数据的程序。因为在64K的一个段中,不能放下所有的代码与数据。为了解决这个问题,需要指定以far函数或far指针来使用这部分的空间(64K以外的空间)。许多库函数就是显式地指定为far函数的形式。far指针通常和farmalloc()这样的内存分配函数一起使用

汇编语言

在汇编语言中,FAR是指远过程调用,即子程序和主程序不在一个代码段,则使用FAR。远调用发生后,主程序堆栈中将压入CS、IP值保护起来。

使用范例: SUB1 PROC FAR; 调用不在同一代码段内的子程序SUB1

寻址 far near相关推荐

  1. 数据存储方式_寻找要操作数据的存储地址的过程称为寻址,几种寻址的方式分享...

    单片机工作时,在程序指令的控制下,对数据进行各种操作(如存取数据.对数据进行运算等),然后输出控制信号.指令要对数据进行操作,必须先找到操作的数据,数据存放在存储器中,只有找到要操作数据的存储地址,才 ...

  2. 《LINUX3.0内核源代码分析》第一章:内存寻址

    https://blog.csdn.net/ekenlinbing/article/details/7613334 摘要:本章主要介绍了LINUX3.0内存寻址方面的内容,重点对follow_page ...

  3. 链路层寻址与 ARP

    一. MAC 地址 不是主机或路由器具有链路层地址,而是它们的适配器(即网络接口)具有链路层地址.因此,具有多个网络接口的主机或路由器将具有与之相关联的多个链路层地址. 然而,链路层交换机并不具有与它 ...

  4. Linux中的文件寻址,Linux文件寻址算法:逻辑地址到物理地址的转换

    题目描述: 编写一个函数实现Linux文件寻址的算法,即读取文件当前位置到物理存储位置的转换函数,需要给出运行的测试数据,可以假设和模拟需要的数据和结构.即编写一个函数unsigned long lt ...

  5. SpringMVC4.x源码分析(五):request请求寻址HandlerMethod原理

    2019独角兽企业重金招聘Python工程师标准>>> mvc:annotation-driven会将每一个Controllor内的被@RequestMapping注解标注的方法解析 ...

  6. java虚拟机资源根目录_Java路径问题最终解决方案—可定位所有资源的相对路径寻址 - java - CSDN技术......

    Java路径问题最终解决方案 -可定位所有资源的相对路径寻址 前言 Java的路径问题,非常难搞.最近的工作涉及到创建和读取文件的工作,这里我就给大家彻底得解决Java路径问题. 我编写了一个方法,比 ...

  7. MATLAB寻址访问按什么优先,matlab笔记

    在比赛的前几天查看一下可视化画图的方式 知识点目录 矩阵元素寻址 矩阵的逻辑运算符很重要 函数文件的写法 函数 函数的可变数量 跨空间变量传递 画图 数据分析 数据插值 三次样条插值法 #符号识别 p ...

  8. [攻克存储] 掌握SDRAM/DDR的结构与寻址

    本系列前面两篇文章<[攻克存储] SRAM地址线的连接>和 <[攻克存储] 存储芯片的写屏蔽及扩展>已经介绍了SRAM芯片的地址线连接方法以及存储芯片的写屏蔽扩展,这两篇文章基 ...

  9. TerryLee技术专栏WCF后传正文 WCF后传系列(3):深入WCF寻址Part 3—消息过滤引擎...

    概述 通过前面两篇的介绍,对Web服务寻址规范以及在WCF开发中终结点地址有了深入的认识.本文我们继续深入WCF寻址第三部分内容,当消息传入时,如何来确定匹配的终结点,就是我们本文要讲到的消息筛选引擎 ...

  10. 一致性hash算法_分布式寻址算法

    一.分布式寻址算法简介 分布式寻址算法是很重要的内容,不了解这些算法,也就不能透彻的了解各种分布式中间件的原理.简单说一下这些高大上的寻址到底是个啥意思,比如在elasticsearch中,采用的是多 ...

最新文章

  1. (解释)常见的无线路由器采用( A)技术。 A. WiFi B. AP C. UWB D. ZigBee
  2. 利用epoll写一个迷你的网络事件库
  3. 信号转换 | 将对称方波转换成倍频PWM波形
  4. torch.max和torch.softmax
  5. .net core使用数据库
  6. Linux ubuntu 修改终端【普通用户、root用户】命令(命令行)配色(颜色)(命令行自动计数)(/etc/profile)(~/bashrc)(source命令)
  7. 12306春节高速抢票
  8. linux调用v4l2获取视频,嵌入式Linux:V4L2视频采集操作流程和接口说明
  9. 使用计算机时 开关机顺序会,电脑如何正确开关机
  10. 草稿 listview动态绑定数据
  11. kotlin和python哪个好_python替代品for一些java及kotlin功能(慎入啊慎入)
  12. MapReduce的分区
  13. windows安装 wget
  14. PPT/Word中神奇的快捷键F4(重复上次操作)失效的解决办法
  15. 第二周博客作业西北师范大学|李晓婷
  16. MapReduce: Simplified Data Processing on Large Clusters 翻译和理解
  17. [机缘参悟-79]:深度思考-职场中注意事项-管理者版
  18. 实验室真的需要智能LIMS系统吗?
  19. 使用NumPy加载txt文件提示ValueError:could not convert string to float
  20. 多线程对共享资源的访问

热门文章

  1. 求无向图的连通分量或有向图的强连通分量—tarjan()ccf高速公路
  2. 基于java的BP神经网络-初步调超参的体会
  3. [精选]大学生实习报告怎么写?
  4. SpringCloud 教程(一)| 微服务及五大神兽组件 --- 微服务架构
  5. QuillBot英语润色网站
  6. 3.2.6 Sweet Butter香甜的黄油 USACO
  7. python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider-阿里云开发者社区...
  8. 微交易平台官网_熟悉官网常用版块
  9. 【数据链路层】广播信道 碰撞检测CSMA 争用期
  10. VC890D老款数字万用表内部旋钮触点