int 20 中断撕下美国技术封锁由来已久的面纱

本文探讨了汇编语言中的软件中断指令int 20,传统认知中它作为“终止程序运行”使用,但实际上其功能远不止于此。作者通过历史背景,特别是微软Windows 3.2简体中文版的推出,揭示了int 20在判断操作系统语言版本上的隐秘作用,展示了技术封锁的另一面。同时,文中提到了90年代初的编程环境,如Microsoft Visual C++和Borland C++,在处理汉字输入时的不同表现,以及反汇编分析过程中发现的微软如何利用int 20实现功能区分。
摘要由CSDN通过智能技术生成

叙说程序猿眼中的人文世界,分享的主题内容如下:

程序那点事:软件中断指令之int 20 未公开中断

程序猿看世界:未公开中断如同一道隐秘的技术封锁线

有趣的HOOKs:微软Windows操作系统的发展历史

 

 程序那点事:软件中断指令之int 20未公开中断

软件中断指令是在汇编程序(assembly language)中经常使用的语句,汇编程序可以理解成是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。与JAVA、C等高级语言相比较,汇编语言与机器指令“更亲近”,而不同的机器语言指令集通常是不完全相同的,所以特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。记得我们上学的时候,就会有诸如8086汇编程序、长城0520汇编程序等可以去学习。

在今天的实际应用中,汇编程序通常被应用在底层,硬件操作和高要求的程序优化的场合。虽不如高级程序设计语言简便、直观,但是汇编产生的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。所以汇编程序通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。

 

那软件中断指令是怎么回事呢?应该说中断指令在CPU执行中享有优先执行的“特权”指令。正常情况下CPU本来好好的做自己的事情, 突然来了一个外部命令(就是这个中断指令),这时候CPU这时不管之前在做什么都会自动被暂停下来,然后转去做新的任务(也就是执行中断函数中定义好的任务)。

打个比方,一场足球比赛正在进行中(CPU正常执行原来的程序),突然裁判吹哨判了国安队犯规(来了一个中断指令),罚国安队换人(CPU执行中断指令内容),然后比赛继续进行(CPU继续执行原来程序内容)。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值