这mike是什么意思思

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID7190305空间积分0 积分18132阅读权限90帖子精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
大富大贵, 积分 18132, 距离下一级还需 1868 积分
帖子主题精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
论坛徽章:8
18:50 上传
看意思是说, 似乎在执行 register int *p2 asm(&r1&) = ... 的过程中,&&register int *p1 的值被覆盖了, 由于某些 ABI 的原因(如C的赋值运算符实际是调用了一个函数做的)
但我不明白, 为什么前面搞一个变量就能避免这个问题, register int *p2 asm(&r1&) = ... 这三个点也是变量吧, 或者常量, 如果是常量的话, 和第一个例子不完全一样吗? 如果是变量, 倒是可以解释为 ABI要求常量必须使用 r0, 然后 r0 赋值给 r1, 因此 r0 被破坏
授我以鱼, 不要授我以渔
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID7190305空间积分0 积分18132阅读权限90帖子精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
大富大贵, 积分 18132, 距离下一级还需 1868 积分
帖子主题精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
论坛徽章:8
For example, you may not have an operand describing a register class with one member if you mention that register in the clobber list.
又是什么意思?
是再说不能在input/output 中使用一个在clobber列表中的寄存器呢, 还是说, 不单单不能使用在clobber列表中的寄存器, 连 clobber列表中的寄存器 同一 class 的寄存器都不能使用?
授我以鱼, 不要授我以渔
UID9342247空间积分0 积分29557阅读权限90帖子精华可用积分29557 信誉积分9212 专家积分15 在线时间3731 小时注册时间最后登录
巨富豪门, 积分 29557, 距离下一级还需 10443 积分
帖子主题精华可用积分29557 信誉积分9212 专家积分15 在线时间3731 小时注册时间最后登录
认证徽章论坛徽章:4
这是什么书?
第一楼是这样的。你不是绑定了p1到r0,p2到r1么?但是你计算p2的时候,可能会调用一些函数啊,做一些操作啊等等,这些事情可能覆盖掉你对p1的赋值。比如说:
register int p1 asm(&r0&) = 10;
register int p2 asm(&r1&) = f();
假设,f的返回值在ABI中是保存在r0中的,假设f返回20,那么最终的结果就是p1和p2的值都是20(p1的10被函数返回给覆盖了)。另外就算你不调用函数,你也不能保证你写的一个简单的a + b不是编译器调用某个库函数实现的,如果是这样你也只有死的份。
怎么办呢?很简单,不要再对p2赋值的时候做任何计算,直接给他一个计算好的值就行了,对上面的例子来说,就是:
int t = f();
register int p1 asm(&r0&) = 10;
register int p2 asm(&r1&) =
这样,f的调用——或者任何可能的函数调用等等会修改p1的操作,都会在p1的赋值之前发生,p2的赋值就是一个单纯的mov,不可能能改变p1的值了。就是这个意思。
UID9342247空间积分0 积分29557阅读权限90帖子精华可用积分29557 信誉积分9212 专家积分15 在线时间3731 小时注册时间最后登录
巨富豪门, 积分 29557, 距离下一级还需 10443 积分
帖子主题精华可用积分29557 信誉积分9212 专家积分15 在线时间3731 小时注册时间最后登录
认证徽章论坛徽章:4
本帖最后由 starwing83 于
19:45 编辑
zylthinking
& & 这个要有上下文,我也不知道register class到底指什么。
UPDATE:结合你一楼的例子,我猜这句话说得是,如果有个寄存器被指定在clobber列表里面了,那么你不能再io列表里面用任何被绑定到这个寄存器的东西,比如说clobber列表里面有r0,那么你不允许在i/o列表里面用p1。应该是这样吧。有不对请指正。
越炼越无知
UID729851空间积分0 积分4922阅读权限100帖子精华可用积分4922 信誉积分2734 专家积分20 在线时间4081 小时注册时间最后登录
帖子主题精华可用积分4922 信誉积分2734 专家积分20 在线时间4081 小时注册时间最后登录
论坛徽章:2
本帖最后由 gvim 于
21:06 编辑
楼主的好像是arm的吧。
看你的文字描述应该就是使用时有副作用的寄存器,一是caller/callee不save的寄存器,二是指令执行时会产生副作用的寄存器,比如引文里提到的计数拷贝时的ecx。不应该退出了继续用,这些寄存器相当于全局变量,前面放变量应该是把全局寄存器里的内容缓存到内存里去。
第二段上下文少,我个人觉得就是说不能用当前操作的clobber列表里的。当前操作的clobber register class应该就是指的函数调用和副作用两种。 比如普通函数调用和无浮点处理器上的 / 和 % 操作 算调用类,计数mem指令的ecx算副作用类。本次操作没涉及到clobber list里的寄存器便可以使用。
另外gcc可以被设定成caller/callee save,这样便改变了clobber list还可以自行设定clobberlist, 这样便不再是默认的clobber list,但某些汇编指令的副作用取消不了。 这样解释的话,函数调用之后可以使用所有寄存器,但计数mem之后还是不能使用ecx。
灵魂说是对的,懵懂间认为我们每个人到这世界上一走,都是上帝安排的锻炼。在尘世间历练一回,经历许多的磨难 快乐 哀伤,是为了领会灵魂的升华。一但是时候了上帝再把我们招回,所以还是安心经历这人世的一招吧。
UID空间积分0 积分2424阅读权限50帖子精华可用积分2424 信誉积分1982 专家积分0 在线时间1732 小时注册时间最后登录
小富即安, 积分 2424, 距离下一级还需 2576 积分
帖子主题精华可用积分2424 信誉积分1982 专家积分0 在线时间1732 小时注册时间最后登录
论坛徽章:0
果断要从调用惯例/约定说起. 这个约定通常是ABI的一部分.
调用惯例/约定规定了, 当一个函数(caller)调用其他函数(被调用函数, callee)时, callee不应当修改/覆盖caller调用callee后要用到的哪些寄存器.
即:void callee(void)
{
& & ...
}
void caller(void)
{
& & // [1] ...
& & callee();
& & // [2] ...
}复制代码ABI的调用惯例/约定保证, 在caller调用callee之前(即[1])处, 与caller调用callee之后(即[2])处, 哪一些寄存器的内容是确保不会改变的.比如x86, 一般规定ebx, esi, edi都是调用callee前后不会改变的 -- 亦即, 如果callee修改了ebx, or esi, edi, 那么callee在修改之前要先将其保存到栈上, 然后修改, 修改完返回到调用方之前要恢复ebx, or esi, edi.
那么, 言外之意也就是说, 还有一部分寄存器的内容是会被改变的. 比如x86, eax, ecx, edx都是调用惯例不保证的. 既然调用惯例不保证caller调用callee前后其值不变, 那么caller在调用callee之前, 应当自己先把寄存器eax, ecx, edx都保存到栈上, 等调用完毕, 又自己恢复它们的值. 那么, eax, ecx, edx即被称为 call-clobbered -- 调用函数后不保证其内容和调用前不变. 即是有可能被破坏的意思.
请注意 -- 这个调用惯例/约定是规定编译器该怎么做.即, 根据这个约定, 编译器知道caller调用前应该保存哪些寄存器, 调用后恢复哪些寄存器, 同样, 编译器也知道callee应该在对哪些寄存器进行修改前要先保存, 返回前要先恢复.
回到LZ的例子. 前面一段大意是, 嵌入式汇编中, 因为寄存器多是gcc自动分配, 没有某种强制的约束字, 于是当你想自己强制约束寄存器和变量的对应时怎样怎样云云.register int *p1 asm(&r0&) = ...; // op1
register int *p2 asm(&r1&) = ...; // op2
register int *result asm(&r0&);复制代码这段代码中, op1是无所谓的. 就算op1调用了函数, 这个函数修改了某些寄存器的值, 但是编译器和ABI会保证, 你调用前后寄存器的值都是一致的 -- 反正不是调用方 保存/恢复 就是被调用方 保存/恢复.
但是op2就不同了. 原因就是写代码的人已经擅自强制使用了寄存器(例子中是r0). C语言和编译器 -- 没办法/或者很难? 约束/预知 Coder的这个行为. 因为Coder擅自使用了寄存器, 那么责任就应该由Coder自己负责, 编译器不知道应该调用前保存哪个, 调用后恢复哪个. 即, 如果op2是一个函数调用, 那么显然op2中会破坏一些寄存器, 本来编译器根据ABI是知道哪些应该恢复的, 但是Coder又使用了, 所以, 这个责任Coder自己负责, 就是这个意思(ps, 一般的C语言的赋值操作怎么可能调函数, 不是mov指令就完事的么. C++重载赋值操作符了才得那么干. 当然C语言的结构体变量赋值倒也不是一个mov万事那么简单, memcpy也就行了. 那个op2是指代 '...', 即starwing83解释的那样, op2调函数了).
基本上, 我认为starwing83的解释也是对的. 我只是先啰嗦了调用约定(r0, r1神马的果断是ARM吗. 那么就是APCS了).
==========================================
至于第二个, 我认为也应该从调用约定的出发点去理解. 基本上, call-Clobber list中的寄存器就是不适宜使用的, 否则Coder自己care.
==========================================
呃... 当然我可能根本没理解或者解释错了. 那么LZ砖轻拍.
========& 纵一苇之所如,凌万倾之茫然 &========
UID7190305空间积分0 积分18132阅读权限90帖子精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
大富大贵, 积分 18132, 距离下一级还需 1868 积分
帖子主题精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
论坛徽章:8
starwing83 发表于
这是什么书?
第一楼是这样的。你不是绑定了p1到r0,p2到r1么?但是你计算p2的时候,可能会调用一些函数 ...
就是 gcc 手册而已
授我以鱼, 不要授我以渔
UID7190305空间积分0 积分18132阅读权限90帖子精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
大富大贵, 积分 18132, 距离下一级还需 1868 积分
帖子主题精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
论坛徽章:8
本帖最后由 zylthinking 于
14:32 编辑
gvim 发表于
楼主的好像是arm的吧。
看你的文字描述应该就是使用时有副作用的寄存器,一是caller/callee不save的寄存器 ...
最后搜遍全书, 算是找到了&&register class 的定义GCC coprocessor subclass ’(A|B|C|D)’ = registers
Creates and defines a register class. These register classes can be used by inline
asm constructs. registers may be a single register, register range separated by
ellipses, or comma-separated list of those. Example:
#pragma GCC coprocessor subclass ’B’ = $c2, $c4, $c6
asm (&cpfoo %0& : &=B& (x));复制代码照此看来, 应该是和 clobber 同一类的寄存器都不能使用。
上下文如下:
You may not write a clobber description in a way that overlaps with an input or output
operand. For example, you may not have an operand describing a register class with one
member if you mention that register in the clobber list. Variables declared to live in specific
registers (see Section 6.44 [Explicit Reg Vars], page 390), and used as asm input or output
operands must have no part mentioned in the clobber description. There is no way for
you to specify that an input operand is modified without also specifying it as an output
operand. Note that if all the output operands you specify are for this purpose (and hence
unused), you will then also need to specify volatile for the asm construct, as described
below, to prevent GCC from deleting the asm statement as unused.
不过也可以这样理解: you may not have an operand describing a register class with one member, 意思就是说这个 class 只有一个寄存器构成??? , 还是说构成这个class的某个寄存器被列在了 clobber中, 导致构成这个class的所有寄存器都不能被使用
现在最后一句又理解不了了,&&他是在说:
asm (&mov $1, %0&&&:&=r&(var)&&: &0& (var)) 可能会被优化掉吗
除非写成 asm volatile (&mov $1, %0&&&:&=r&(var)&&: &0& (var) 才可能保留??? 关键是 hence 怎么翻译, 如果翻译成 &此后&, 那么就没问题了, 翻译成 &因此& 就有问题。
授我以鱼, 不要授我以渔
UID7190305空间积分0 积分18132阅读权限90帖子精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
大富大贵, 积分 18132, 距离下一级还需 1868 积分
帖子主题精华可用积分18132 信誉积分2472 专家积分40 在线时间4500 小时注册时间最后登录
论坛徽章:8
本帖最后由 zylthinking 于
15:20 编辑
Note that in the following example the memory input is necessary, otherwise GCC might
optimize the store to x away:
int foo ()
& & int x = 42;
& & int *y = &x;
& & asm (&magic stuff accessing an ’int’ pointed to by ’%1’&
& && && && &&=&d& (r) : &a& (y), &m& (*y));
又该怎么理解? 为什么没有&&&m& (*y) 会导致优化掉存储 x???
首先是 magic stuff accessing an ’int’ pointed to by ’%1’对应哪些指令, 会不会包含 mov $1, (%1) 这样的指令, 如果包含, 没有指定 &m& (*y) 会优化掉 mov $1, (%1)&&吗
还是说 store to x&&指的是 x = 42 这个语句, 如果没有&&&m& (*y) 会导致 x = 42 被优化掉, 从而在一个随机值的 x 的基础上执行, 导致错误?
授我以鱼, 不要授我以渔
UID9342247空间积分0 积分29557阅读权限90帖子精华可用积分29557 信誉积分9212 专家积分15 在线时间3731 小时注册时间最后登录
巨富豪门, 积分 29557, 距离下一级还需 10443 积分
帖子主题精华可用积分29557 信誉积分9212 专家积分15 在线时间3731 小时注册时间最后登录
认证徽章论坛徽章:4
zylthinking
& & 应该是说都不能用。
看这种书你脑子里一定要想“为什么”,gcc为什么设计寄存器组这种东西?因为当你要使用嵌入汇编的时候,gcc自己还要用一些寄存器。如果你硬性制定了非要用某个寄存器,那么gcc可能因为冲突的原因,只能暂存自己的结果——这样会降低性能(特别是asm通常是为了提高性能这一点考虑),所以gcc要你提供多个寄存器让gcc自己选,也是很正常的事情了。
如果是这样,那么万一发生冲突,gcc是不知道是哪个冲突的,gcc可能会用那个寄存器组里任意一个寄存器去完成你的汇编工作,万一是那个冲突的你就死定了。所以这句话的含义肯定是这个组你都是不能用的。
换言之,gcc把这个组里的寄存器当做“一个”了。
后一个问题同样你得问为什么:为什么一个寄存器同时被列在input和output里面就会unused?另外你还得找到unused的定义:这玩意儿到底指的是什么?这些不搞清楚你不可能知道这句话的含义。
9L的问题是这样的:在input里面制定的y,仅仅是一个地址,编译器不知道你会用这个地址做什么很神奇的事情,比如说,可能地址本身作为输入,然后把地址内容修改了作为输出。编译器默认会认为你用到的仅仅是个地址(毕竟是汇编),那么编译器就可能认为这个地址里面的内容对汇编来说是没有意义的。如果是这样,那么优化pass就可能认为对x的赋值是没有意义的(赋值了,但没有被使用),gcc就会优化掉对x的赋值。
因此你必须告诉编译器,*y的值也是输入的组成部分之一。它是会被使用的,所以编译器就无法优化掉x的赋值了。
是这样的,很多这种细节问题都是由于在汇编领域,C的一些约定俗成的规则失效了:gcc无法通过你的汇编判断你用了哪些东西,没用哪些东西,就不知道如何做优化——但是又不能不优化,因为你用汇编本身这个行为就是为了优化,不然用汇编搞毛?所以编译器的默认行为就是:你不说,我就认为你没用。所以你在asm里面用到的**任何**东西,都得说出来,不然编译器就会认为你没用,然后优化掉。这个词,原来是这个意思!_百度百科
这个词,原来是这个意思!
《这个词,原来是这个意思!》是上海人民出版社出版的图书,作者是许晖。
这个词,原来是这个意思!基本信息
正文语种: 简体中文
品牌: 上海世纪出版股份有限公司
ASIN: B007FNZ9JC
定价:¥ 30.00
这个词,原来是这个意思!内容简介
《这个词,原来是这个意思!》内容简介:原来,很多词的古今用法竟然如此不同!让国学行家带领你重返语文的历史现场,一次看完近200则词条当初如何诞生,又如何演变成今日的用法,既长见识,又长知识。原来,汉语是活的,是有生命的。看完本书,你再也不会错用、误用和滥用中文了!
当中更有各个词条的用法事例!
这个词,原来是这个意思!编辑推荐
《这个词,原来是这个意思!》重返语言的历史现场,原来汉语是这么有趣,连语文老师都要吓一跳。一部有关词语身世的故事书,一部让你的中文水平迅速提升的书,读了这本书,你再也不会错用、误用和滥用中文了!连续20周高踞台湾诚品书店畅销榜。世纪文景继作家张大春《认得几个字》之后又一部有关认字学词的书。
这个词,原来是这个意思!作者简介
许晖,1969年出生,自由作家,现居云南大理。主编:《“六十年代”气质》《中国历史的后门》合著:《趣读史记》系列,《新说文解词》,《中华语典1》。个人著作:《身体的媚术:中国历史上的身体政治学》《乱世的标本:中国历史上的乱世人格症》《乱世之鞭:中国历史上最有争议的30个人》《中国人最易误解的日常俗语》《悠悠凤与凰:那些过往的爱情与阴谋》。
这个词,原来是这个意思!目录
“白丁”的称谓是怎么来的/ 11
“百姓”原来是指官员/ 13
“班房”本来是门房/ 15
“笨蛋”本来并不笨/ 17
“陛下”为何是对皇帝的敬称/ 19
“鞭策”原来都是指马鞭/ 21
“伯仲之间”为何比喻不相上下/ 22
“不共戴天”是古人的复仇原则/ 24
“不分轩轾”的“轩轾”是什么东西/ 27
“长舌妇”原来是指哪个女人/ 29
“城门失火,殃及池鱼”的“池鱼”原来是人名/ 31
“城府”为何比喻人有心机/ 32
“痴人说梦”原来是对着痴人说梦话/ 34
“出尔反尔”原来不是反复无常/ 36
“窗户”原来指窗和门/ 38
“床前明月光”的“床”是睡床吗/ 39
“吹嘘”的本义并非吹捧/ 41
“椿萱”为何代指父母/ 43
“促织”为何是指蟋蟀/ 44
“打交道”为何要使劲儿“打”/ 46
“打烊”为何表示停止营业/ 48
“大手笔”原来专指朝廷诏书/ 49
“大驾光临”原来只能用于皇帝/ 51
“呆若木鸡”原来是指凶猛的斗鸡/ 53
“戴高帽”的高帽是什么帽/ 54
“当头棒喝”原来是佛教用语/ 56
“倒霉”倒的什么“霉”/ 58
“倒插门”为何比喻入赘/ 60
“得过且过”原来是鸟的叫声/ 61
“雕虫小技”的“虫”是什么虫/ 63
“顶缸”为何指代人受过/ 65
“东道主”的称谓是怎么来的/ 67
“洞房”本来并不指婚房/ 69
“杜撰”原来是姓杜的在撰写/ 71
“放肆”原本指陈列尸体/ 73
“飞毛腿”是什么腿/ 75
“飞扬跋扈”的“跋扈”指什么/ 77
“飞黄腾达”的“飞黄”是什么/ 79
“风筝”原本是间谍工具/ 81
“风骚”原来是褒义词/ 83
“丰碑”原来是下葬的工具/ 85
“浮财”和“横财”大不同/ 87
“浮屠”到底是什么意思/ 89
“斧正”为何跟斧子有关/ 90
“腹诽”竟然是一项罪名/ 92
“腹笥”为何形容读书多/ 94
“赋闲”的说法是怎么来的/ 96
“革命”原来专指改朝换代/ 98
“狗拿耗子”原来并非多管闲事/ 100
“狗尾”为何要“续貂”/ 102
“固若金汤”的“金汤”指什么/ 104
“怪哉”原来是一种诉冤的虫子/ 106
“汗青”本来是烤青竹/ 108
“行伍出身”为何指代当兵/ 110
“喝墨水”原来是真的喝/ 112
“合卺”为何代指成婚/ 113
“哄堂大笑”原来是出自一项有趣的制度/ 115
“红杏出墙”为何比喻女子不贞/ 117
“鸿运当头”为何跟鸿雁有关系/ 119
“后来居上”原来是贬义词/ 120
“怀璧其罪”到底是什么罪/ 123
“魂飞魄散”的“魂”为何会飞,“魄”为何会散/ 125
“伙伴”的称谓是怎么来的/ 127
“忌讳”原本不能用在活人身上/ 128
“家贼”原来是豢养的刺客/ 130
“袈裟”本意是杂色/ 132
“交椅”原来就是马扎/ 134
“教授”本来是官衔/ 136
“嗟来之食”的“嗟”原来是表示轻蔑/ 138
“金鸡独立”为何用金鸡来形容/ 140
“斤斤计较”原来是褒义词/ 142
“旧雨新知”为何指朋友/ 143
“爵位”原来来源于饮酒的等级/ 145
“空穴来风”原来指有根有据/ 147
“魁首”为何是指第一名/ 148
“郎中”为何是尊称医生/ 149
“浪子”从来不可羡/ 151
“牢骚”原来是刷马时的哀叹/ 153
“老头子”原来专指乾隆/ 155
“老油条”为何比喻圆滑/ 157
“连襟”原来形容友情/ 159
“连理”原来是形容两棵树/ 161
“烈士”本来不必牺牲/ 163
“露马脚”露的为何是马脚/ 165
“马虎”为何形容粗心/ 167
“满城风雨”原来是形容秋景/ 169
“美轮美奂”只能形容建筑物/ 171
“螟蛉之子”为何指义子/ 173
“名堂”为何指花招/ 174
“明目张胆”原本指敢作敢为/ 176
“沐浴”原来是严格的礼仪制度/ 178
“男大当婚女大当嫁”原来是一句偈语/ 180
“袍泽”不是朋友的代称/ 182
“皮里阳秋”原来是褒义词/ 184
“偏袒”为何跟袒露胳膊有关/ 186
“七月流火”不是形容酷暑/ 188
“期期艾艾”为何形容口吃/ 190
“千金”原来指男孩儿/ 192
“敲门砖”原来是八股文/ 194
“敲竹杠”的由来/ 196
“乔迁”不能用在自己身上/ 198
“亲戚”原来各有所指/ 199
“青梅竹马”原来是一种游戏/ 201
“青衫”原来是一种低阶官服/ 203
“青灯黄卷”为何比喻清苦生活/ 205
“青楼”原来并不是妓院/ 207
“倾国倾城”的“倾”是“倾倒”吗/ 209
“倾盖”之交是什么交情/ 211
“秋毫无犯”的“毫”指什么/ 213
“犬子”的称谓要分场合/ 214
“如丧考妣”的“考妣”到底指什么/ 216
“入幕之宾”为何指男同性恋/ 218
“三更半夜”为何含有阴谋成分/ 220
“三长两短”原来是捆棺材/ 222
“三只手”的称谓是怎么来的/ 224
“桑榆”为何指晚年/ 226
“桑梓”为何指故乡/ 228
“桑间濮上”为何指男女幽会的场所/ 230
“杀手锏”其实是“撒手锏”/ 232
“商女”是什么样的歌女/ 234
“上当”原来是上当铺/ 236
“绅士”的称谓是怎么来的/ 238
“甚嚣尘上”最初并无贬义/ 239
“失足”为何表示堕落/ 242
“食言而肥”真的是把话吃进去吗/ 244
“使节”的称谓是怎么来的/ 246
“寿比南山”的“南山”不是一座山/ 248
“睡觉”原来指睡醒了/ 250
“司空见惯”的“司空”原来是官名/ 252
“斯文”为何会“扫地”/ 254
“谈何容易”误用了两千年/ 256
“饕餮”为何形容贪吃/ 258
“太岁”到底是什么东西/ 260
“醍醐灌顶”的“醍醐”是什么东西/ 262
“天作孽”原来是指月食/ 264
“徒步”原来是指平民/ 266
“兔儿爷”为何指男同性恋/ 268
“万乘之尊”为何指代皇帝/ 270
“文不加点”的“点”指什么/ 271
“龌龊”本来并不卑鄙/ 272
“屋漏”是指屋子漏雨吗/ 274
“无所不用其极”本来是褒义词/ 277
“无赖”原来不是浪荡子/ 279
“五福临门”指哪五福/ 281
“牺牲”本来是指祭品/ 283
“下榻”原来是真的把床放下来/ 285
“下流”是怎么变成骂人话的/ 287
“先拔头筹”拔的是什么“筹”/ 289
“下马威”原来是“下车威”/ 290
“现世报”是怎么变成骂人话的/ 291
“乡愿”为何指败坏道德的人/ 293
“枭首示众”为何称“枭首”/ 295
“小鸟依人”最早竟然形容男人/ 297
“小蛮腰”的比喻是怎么来的/ 299
“啸聚”的“啸”原来是一种音乐样式/ 301
“心腹”和“爪牙”原来都是褒义词/ 303
“心怀叵测”原来是褒义词/ 305
“杏林”为何代指中医界/ 307
“猩红”跟猩猩有关系吗/ 309
“悬壶”为何代指行医/ 311
“寻常”本是度量单位/ 313
“压岁钱”原来是为了避凶趋吉/ 314
“衙门”原来是“牙门”/ 316
“筵席”原来是严格的礼仪制度/ 318
“眼中钉”的“钉”是比喻两个坏蛋/ 320
“阳春白雪”为何形容高雅/ 322
“一寸光阴”为何用“寸”来衡量/ 324
“一刹那”是多长时间/ 326
“一生一世”有多久/ 327
“因缘”共有十二种/ 329
“饮鸩止渴”的“鸩”是毒酒吗/ 331
“应酬”原来是饮酒的礼节/ 333
“应声虫”竟然是一种怪虫/ 335
“与虎谋皮”本来是“与狐谋皮”/ 337
“遇人不淑”只能出自已婚女性之口/ 339
“鸳鸯”最早竟然指兄弟/ 341
“岳父”为何是对妻子父亲的尊称/ 343
“招摇”原来是一颗星星/ 345
“钟鸣鼎食”原来是严格的等级制/ 347
“蛛丝马迹”的“马”是什么马/ 349
“驻锡”只能用于僧侣/ 350
“拙荆”为何是对自己妻子的谦称/ 351
“子虚乌有”为何表示不存在/ 353
“座右铭”的来历/ 355

我要回帖

更多关于 这是什么意思 翻译 的文章

 

随机推荐