什么是far、near关键字?(转载)

Nangate 45nm FreePDK开源工艺库:从RTL到GDSII全流程实战 在数字IC设计中,标准单元库是连接逻辑综合与物理实现的基石,它定义了每个单元的逻辑功能、时序延迟与物理尺寸。开源EDA工具链的成熟,使得个人也能借助免费工艺套件完整跑通芯片设计流程。Nangate 45nm FreePDK作为一套经典的开源工艺库,凭借结构清晰、配套完善的特性,成为学习数字后端和时序收敛的理想训练场。从综合工具Yosys读取Liberty文件进行逻辑映射,到OpenROAD执行布局布线与时钟树综合,再到使用OpenSTA分析关键路径延迟,这套流程涵盖了数字设计最核心的环节。通过亲手操作,开发 阅读详情

本文转自:http://hi.baidu.com/dareny/blog/item/16f1080ef5379ece7acbe1f9.html

 

在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。
near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。
far指针的长度是32位,含有一个16位的基地址和16位的偏移量,将基地址乘以16后再与偏移量相加,(所以实际上far指针是20位的长度。)即可得到far指针的1M字节的偏移量。所以far指针的寻址范围是1M字节,超过了一个段64K的容量。例如一个far指针的段地址为0x7000,偏移量为0x1244,则该指针指向地址0x71224.如果一个far指针的段地址是0x7122,偏移量为0x0004,则该指针也指向地址0x71224。
如果没有指定一个指针是near或far,那么默认是near。所以far指针要显式指定。far指针工作起来要慢一些,因为每次访问一个far指针时,都要将数据段或程序段的数据交换出来。另外,far指针的运算也比较反常,例如上面讲到的far指针指向同一个地址,但是比较的结果却不相同。


什么时候使用far指针?

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

ardupilot开发 --- MavLink 篇 阅读详情

相关推荐

FreeSWITCH编译安装详细文档

本文档详细介绍了在Ubuntu 22.04系统上从源码编译安装FreeSWITCH的完整流程。主要内容包括:1)系统环境准备和依赖库安装;2)关键依赖库spandsp和sofia-sip的编译安装;3)FreeSWITCH源码的特定版本(v1.6.0)编译配置,包括禁用SignalWire模块的配置方法;4)系统服务配置,包括创建专用用户、设置权限以及配置systemd服务文件。文档特别提供了版本控制说明,确保后期能切换到相同的版本环境,并附有详细的命令操作步骤和注意事项。

唯有代码让我痴狂 1369

char FAR * h_name中的FAR

FAR 是16位系统时候的概念了,代表远指针的意思。 近指针是16位的指针,它只表示段内的偏移地址,因而只能对64k字节数据段内地址进行存取。   如 char near *p;   p=(char near *)0xffff;   远指针是32位指针,它表示段地址:偏移地址,如定义远程指针p指向B500段的2号地址,即B500:0002,则可写作:

1008

微信公众号开发实战:如何高效推送模板消息(附完整代码示例)

本文详细解析了微信公众号开发中模板消息推送的核心流程与实战技巧。文章从OpenID获取、模板申请、Access Token缓存管理到完整PHP代码实现,逐步拆解了高效推送模板消息的关键步骤,并提供了可直接复用的代码示例,帮助开发者快速集成这一提升用户体验的重要功能。

weixin_29009971的博客 793

C语言中的far关键字

最近看嵌入式文件系统TFFS的源码,看到far关键字,基础不好,惊呆了。。。 /*Specify here which pointers may be far, if any. *Far pointers are usually relevant only to 80x86 architectures. */ 下面是网上盗来的说法,大致上了解一下: far即为远地址,16位模式下(如...

weixin_33794672的博客 876

Arm CCA架构:硬件级机密计算与安全隔离技术解析

机密计算(Confidential Computing)通过硬件级隔离技术构建可信执行环境(TEE),是当前云安全和数据隐私保护的核心方案。Armv9-A引入的CCA架构采用物理地址空间隔离和Granule保护表(GPT)机制,实现4KB颗粒度的内存访问控制。该技术通过标准化的RMI/RSI接口规范,为虚拟化环境和安全敏感应用提供硬件级保护,特别适用于金融交易、医疗数据处理等需要严格隔离的场景。相比传统TEE方案,Arm CCA在隔离等级和动态权限管理方面具有显著优势,其Realm World设计为机密计算

weixin_30905133的博客 565

基于STM32与毫米波雷达的非接触式睡眠监测系统

物联网和嵌入式系统技术正在推动医疗健康设备的智能化发展。通过传感器网络采集生理信号,结合信号处理算法实现健康监测已成为主流技术方案。毫米波雷达凭借其非接触检测特性,在呼吸、心率等生命体征监测中展现出独特优势。STM32系列MCU凭借丰富外设和低功耗特性,成为医疗级嵌入式设备的首选平台。本系统整合60GHz毫米波雷达、红外测温与无线传输模块,构建了完整的睡眠质量评估解决方案,其硬件架构设计、信号处理算法和低功耗优化策略对可穿戴医疗设备开发具有参考价值。

weixin_36369848的博客 612

VS2015默认不支持x64下__asm{}内联汇编的解决方案(含资源共享)

截至目前(2018年底2019年初),本人windows平台下的各种开发所用的IDE主要就是VS2015。虽然VS2017已经出来一年多了,本人也自己使用过一段时间,但没发现特别大的亮点,又考虑到整个研发团队都在用VS2015,所以也一直是vs2015到现在。 最近在做一个大型矩阵运算相关的研究时,想试着自己结合汇编做点优化实验,当然考虑到实际程序情况,最适合的使用汇编的方式就是内联汇编。Win...

jfsufeng的专栏 2万+

《童虎学习笔记》5分钟用Keepalived搭建MySQL高可用实现虚ip自动漂移

1

tonghu_note的博客 5618

minwindef.h(157): error C2632: “int”后面的“int”非法

#include <WinSock2.h> //#include "rtptypes_win.h" #define HAVE_STRUCT_TIMESPEC #include "pthread.h" #include "libavmcsrtp.h" #include "libavjrtp.h" #include "libavmcsip.h" #include <windo...

sunxiaopengsun的专栏 4593

2022中山大学计算机技术专硕考研初试、复试经验帖

个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧。可以帮助节省时间! 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 机试 笔试 面试 关于选导师 个人感言

zik的博客 1万+

8、对比 LightGBM、XGBoost 和深度学习

本文对比了LightGBM、XGBoost和深度学习模型(特别是TabTransformer)在处理表格数据时的性能差异。从模型复杂度、数据准备、训练时间、准确性和适用场景等方面进行分析,重点探讨了三者在人口普查收入预测任务中的表现。文章详细介绍了XGBoost与LightGBM的核心特性与区别,深入讲解了TabTransformer的架构与实现,并涵盖了分类特征编码、缺失值处理和类别不平衡等关键数据预处理技术,为选择合适的表格数据建模方法提供了实践指导。

julia4scientist的博客 120

C/C++中near和far的区别

C/C++中near和far的区别 关键字near和far受目标计算机体系结构的影响。目前编程中使用不多。 near关键字创建一个指向可寻址内存低端部分的目标指针。这些指针占用内存的单一字节,并且他们能够指向的内存单元被限制到256个位置,通常是在 0x0000~0...

chengyuyi9398的博客 392

第8讲:基于CST PCB Studio的电源完整性仿真(IR Drop + PDN)

本文系统介绍了电源完整性(PI)仿真的两大核心模块:直流IRDrop仿真与交流PDN阻抗仿真。文章详细阐述了两种仿真的原理、算法(PEEC和3DFE-FD)及完整操作流程,包括参数配置、软件实操步骤和常见问题解决方案。IRDrop仿真用于分析直流供电压降问题,PDN仿真则针对高频电源噪声和谐振问题。文中还提供了优化建议和故障排查方法,如调整铜箔厚度、优化电容布局等,为高速数字系统的电源完整性设计提供了全面的技术指导。(149字)

一只豌豆象的博客 238

__far和__near的小问题

本随笔适用于瑞萨RL78/G12单片机开发   在使用瑞萨CS+开发的时候,碰到了一个问题,同事同样的函数段能用,移植过来后发现不能用。   经过排查,发现是__far和__near的问题。同事的工程编译时使用的是small-size优化,我使用的默认的normal-size优化,两种模式针对RAM和ROM地址使用的是不同的编译策略。      在不调整优化模式的情况下,需要将函数原型、声...

weixin_30663471的博客 1934

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

DSP 中关键字extern,cregister,Near ,Far,restrict,volatile

extern:extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。 const: 可以用const定义一些变量或数组,以确保它的值不被改变。 例:int *const p = &x; 定义一个常量指针p给变量int。 const int *q = &...

weixin_34113237的博客 616

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C/C++中near和far的区别 内存 指针

关键字near和far受目标计算机体系结构的影响。目前编程中使用不多。 near关键字创建一个指向可寻址内存低端部分的目标指针。这些指针占用内存的单一字节,并且他们能够指向的内存单元被限制到256个位置,通常是在0x0000~0x00ff范围中。 int near * ptr; far关键字创建一个能够指向内存中任何数据的指针: char far * ptr; near (近)指针:16位段内偏移...

weixin_34202952的博客 133

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

c语言中的内存模式,near far huge关键字

本文章是转载来自https://blog.youkuaiyun.com/wonengxing/article/details/6044576 编译模式是指如何在内存中放置程序代码及数据,如何分配堆栈,并确认占用的内存大小及如何存取它们,当指定内存模式(编译模式)以后,语言编译程序将按事先选择好的内存模式编译组织程序,C 语言中提供了6种编译模式,这6种模式是:微模式(Tiny),小模式(Small),中模式...

weixin_34202952的博客 243

C中的内存模式(编译模式)

声明:             本文章是转载来自http://blog.youkuaiyun.com/wonengxing/article/details/6044576的文章,如果冒犯了您的权益,我会马上删除。   编译模式是指如何在内存中放置程序代码及数据,如何分配堆栈,并确认占用的内存大小及如何存取它们,当指定内存模式(编译模式)以后,语言编译程序将按事先选择好的内存模式编译组织程序,C 语言中提

LL-Studio的专栏 3337

Codewarrior 中的 .prm 文件(2)

1 .prm 文件组成结构 按所含的信息的不同.prm文件有六个组成部分构成,这里仅讨论和内存空间映射关系紧密的三个部分,其他的不做讨论。 · SEGMENTS … END 定义和划分芯片所有可用的内存资源,包括程序空间和数据空间。一般我们将程序空间定义成ROM,把数据空间定义成RAM,但这些名字都不是系统保留的关键词,可以由用户随意修改。用户也可以把内存空间按地址和属...

weixin_34290390的博客 188

未定义的标示符“RECT”,引入了windows.h头文件也没有用?

我用的是win8的vs2012,RECT应该引入什么头文件?windows.h我第一个就引入了,去windows.h里面搜也搜不到RECT这个关键字,应该引入哪个头文件呢? 真是奇怪啊,是不是还需要什么命名空间呢?在MSDN上面查到它就是在Windows.h里面的啊包含windows.h应该是可以的,没有的话,再包含windef.h,如果实在没有,就自己定义一个吧,效果一样的,结构如下:type...

weixin_30708329的博客 1079

Free Pascal和Turbo Pascal的区别

[手工搬家自网易博客 原发表日期:2006-8-28]http://zhidao.baidu.com/question/1015068.html [转载]虽然Free Pascal尽量设计得和Turbo Pascal接近,但是由于以下的两个原因,两者之间还是有一些区别的: 1.Free Pascal是一个32位的编译器,而Turbo Pascal只是16位编译器; 2.

JedJia's Blog 718

汇编中的la_汇编语言中,SP,BP ,SI,DI作用?

这个很简单:sp:表示栈顶指针,指向栈顶地址.与SS相配合使用.ss为栈段.bp:是基址指针,段地址默认在SS中.可以定位物理地址,比如:"mov ax,[bp+si+6]/mov ax,[bp+di+6].DI:是目的变址寄存器.一般情况下与ds联用,来确定某个储存单元的地址.SI:是源变址寄存器,默认段地址和DI一样,在DS中.和DS联用.这四个寄存器,都是16位的,不可以分割为八位.要注意,...

weixin_39604897的博客 2013

far指针与near指针

far指针与near指针 win16、win32相关知识: 运行在16位CPU(80826微处理器)微机上的Windows16,对于内存按照“分段内存模式”(Segment Memory Mode)进行使用.在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。 16位CPU(主要指80386和80486)内部数组总线为16位,地址总线为24位。这就意味...

寂蝶难双,窃窃思羽. 2838

远指针FAR/近指针NEAR/_STDCALL/_CDECL

今天看到inet_ntoa函数的原型,这个返回类型实在是没见过: char FAR* PASCAL FAR inet_ntoa(struct in_addr in); 搜索了一下: 1.关于FAR:(来自http://blog.youkuaiyun.com/sphone89/article/details/7184976) FAR 是16位系统时候的概念了,代表远指针的意思。 近指针是1

xingdebocqyz的专栏 918
上一篇: 非阻塞式socket编程(select() )(转载)
下一篇: PreTranslateMessage作用和使用方法(转载)
Leasangle
博客等级 码龄17年 32粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值