社区
C语言
帖子详情
有没有谁有DOS下使用C或汇编编程的经验!
zhaoxueli
2002-06-06 04:25:53
我想知道DOS下PC喇叭(扬声器)的I/O端口,记得好象是64,和键盘好象是一样的
怎样用语句让扬声器发声?好象是什么out命令,已忘了,谁能告知?
万分感激!
...全文
29
5
打赏
收藏
有没有谁有DOS下使用C或汇编编程的经验!
我想知道DOS下PC喇叭(扬声器)的I/O端口,记得好象是64,和键盘好象是一样的 怎样用语句让扬声器发声?好象是什么out命令,已忘了,谁能告知? 万分感激!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yanwanj
2002-06-06
打赏
举报
回复
BEEP()
mylove0618
2002-06-06
打赏
举报
回复
一个简单的函数就行了:
#include<dos.h>
sound(frequency);//unsigned frequency ;range from 2 to 20000
nosound();//end the sound
sunnyby
2002-06-06
打赏
举报
回复
c语言高级编程,那本书里面有现成的源代码,我就copy过:)
成功了
loveisbug
2002-06-06
打赏
举报
回复
同意楼上的
lmajor
2002-06-06
打赏
举报
回复
小兄弟,用Tc 2.0里边就有库函数,你用Tc 3.0在它的帮助文档里边就又说明
out时一个汇编的命令而已
windows环境下32位
汇编
语言程序设计
前言 从Windows出现开始,
汇编
语言似乎在慢慢地销声匿迹,但本书可以让人放弃这个观点,其实在Win32环境下,
汇编
语言依然强大。 Why——为什么选择Win32
汇编
选择Win32
汇编
的理由是什么呢? 在
DOS
时代,学习
汇编
就是学习系统底层
编程
的代名词,仅要成为一名入门级的
汇编
程序员,就需要学习从CPU结构、CPU工作方式、各种硬件的
编程
方法到
DOS
工作方式等范围很广的知识。随着Windows时代的到来,Windows像一堵巨大的墙,把我们和计算机的硬件隔离开。对于
DOS
的
汇编
程序员来说,就像在一夜之间,我们发现自己曾经学过的几乎所有的东西都被Windows封装到内核中去了,由于保护模式的存在,我们又无法像在
DOS
下那样闯入系统内核为所欲为。在Windows下用任何语言
编程
都必须遵循Windows的规范,
汇编
也不例外,也就是说,
汇编
不再是一种“有特权”的语言。面对汹涌而来的Visual C++,Visual Basic,PowerBuilder和Java等各个领域的猛将,从
DOS
时代“为所欲为”的“系统警察”岗位下岗,在其他领域又没有一技之长,
汇编
语言似乎失去了生存的意义,有很多人在
DOS
转向Windows的时候放弃了
汇编
语言。 但是经过短暂的失落,摆正了自己在系统中的位置,我们发现从“系统警察”转换到遵循Windows规范的“好市民”后,
汇编
语言又慢慢地在这个世界流行起来了。毕竟,不能为所欲为也可以有好的一面,我们可以不必再考虑一些老大难的问题,如程序运行时会面对什么样的显示卡,如何驱动不同的打印机,内存不够了如何用磁盘交换,等等。我们也可以在了解更少硬件知识的情况下就可以掌握Win32的
汇编
编程
。而且,我们惊喜地发现,做了“好市民”以后,我们反而拥有了和其他语言同样的权利——为了做图形和界面等方面的功能,
汇编
程序员在
DOS
时代连做梦都在羡慕C语言庞大的函数库,而现在,Windows为我们提供了比这还要多得多的函数,以至于其他大部分语言可以做出来的功能,
汇编
都可以做,而其他语言做不到的功能,
汇编
照样可以做!所以这就是理由之一:Win32
汇编
可以当做一种功能强大的开发语言
使用
,
使用
它完全可以开发出大型的软件来。 正因为Win32
汇编
看上去不再那样低级,于是有读者曾经提出:Win32
汇编
讲的都是用API来写程序,和高级语言差不多,以前在
DOS
下
使用
的中断什么的都不能用,所以没有什么新奇的了。还有读者认为本书只不过是MSDN的
汇编
版本而已。言下之意就是:学
汇编
就是为了了解高级语言底下一层的功能,但现在Win32
汇编
却
使用
和C++等语言相同的API接口,既然和高级语言处于同一个级别,我们为什么还要去和机器指令打交道呢,还不如去学Visual C++方便。 但是我们可以这样问一问自己: 问:在
DOS
汇编
中我们为什么用中断功能? 答:为了
使用
DOS
内核提供的功能。 问:在
DOS
中我们常常自己用操作I/O端口的方法读写硬盘或操作显卡吗? 答:不,我们用系统提供的int 13h和int 10h。 …… 同样,在Win32
汇编
里
使用
API也是为了
使用
Windows内核提供的功能。只不过
使用
的方式不再是中断方式而已,这不是Win32
汇编
语言“高级化”了,而是高级语言因为
使用
Windows的API接口而“低级化”了,其代价就是无法移植到其他系统,用Visual C++写的程序是无法移植到其他操作系统平台上的,只有和平台无关的ANSI C++等才能算是真正意义上的高级语言。 其实,任何
汇编
语言都是和操作系统密切相关的,不管是
DOS
汇编
、Win32
汇编
,还是Linux
汇编
,都是基于特定的操作系统的,如果一定要绕过操作系统,那么就不会有
DOS
汇编
和Win32
汇编
的区别了,但是这样的话我们不是在学
汇编
,而是在自己开发操作系统。高级语言在不同的操作系统上看起来都差不多,但作为一种低级语言,不同操作系统上的
汇编
就是不同的世界。所以,既然Windows和
DOS
是两个完全不同的操作系统,我们就必须抛弃
DOS
汇编
中的大部分概念从头开始学习Win32
汇编
。这就是理由之二:Win32
汇编
是Windows环境下一种全新的
编程
语言。 Win32环境下的很多高级语言,如Visual C++和Visual Basic等,一如既往地对实现的细节进行了或深或浅的封装,就连最能表现Windows特征的部分,如消息循环和多线程的处理等内容也都被隐藏封装,使我们在
使用
它们进行可视化
编程
的同时,无法全面了解Win32程序运行的具体方式。在学习Win32
汇编
以后,这些隐藏在高级语言后面的细节就暴露出来了。 由于封装的关系,各种高级语言或多或少存在某种“缺陷”,比如VB不支持指针,结果很多需要
使用
指针的API用起来就很不方便,像多线程一类的特征在VB中就无法实现,PowerBuilder也是如此;C语言已经是最灵活的高级语言了,但还是无法在代码级别处理某些需求;而
汇编
语言见到的是一个最真实的操作系统,它可以用最灵活的方式
使用
各种系统功能,第13章中有关进程隐藏的内容就是最好的写照。所以理由之三就是:
使用
Win32
汇编
语言是了解操作系统运行细节的最佳方式。 最后的理由根本不是理由,而是必然的选择,当我们在Windows环境下进行加密解密、逆向工程,还有病毒、木马等有害代码的分析和防治工作时,Win32
汇编
是唯一的选择。在任何讨论这方面内容的书籍中,
汇编
代码的篇幅总是很大的。因此,要想深入了解这些内容的前提就是深入
汇编
编程
。 How——如何学习Win32
汇编
以往的
汇编
书籍往往把重点放在硬件结构和指令上,讲述了一大堆电路框图和指令列表,把大家搞得晕晕乎乎后,再举出一些重量级的例子,不是一些像数组、矩阵计算一类的复杂运算,就是开始图形模式画图,以至于大家看完以后就再也找不到北了!实际上,这些例子不是太难了,而是太枯燥了。有人说,学
汇编
就像考大学,千军万马过独木桥,太多的人中途放弃了,只有少数人坚持到最后。 笔者认为:学习
汇编
应该在轻松的环境下进行,在学习中
使用
的例子不一定太复杂,但一定要有吸引力。用
汇编
写复杂的运算程序固然会比C更有效率,但同样的事在C中用一个表达式就全部搞定了,从这里开始学
汇编
,给人的感觉就像从复杂的公式开始学算术,要知道,加法还没有学会呢!而对于高级语言封装起来的系统功能,用
汇编
解释起来就非常直接,非常自然,也更容易懂。以笔者自己学
汇编
的过程来说,那时候是1990年,刚好是中国第一次病毒大流行,大家的计算机上都是那个病毒的开山鼻祖——乒乓病毒,在流行
DOS
的时期,看着在屏幕上蹦的小球,心中就有一个问题:如何编出这样一个玩意来呢?要知道
DOS
是单任务的,而那个球在别的程序运行的时候照样蹦!这用当时流行的FORTRAN、C等课程中学到的任何知识都无法解释,因为这些课程中不可能有TSR、中断、引导区等内容。带着这样一个疑问学习
汇编
,在分析乒乓病毒的过程中啃一条条不懂的指令,病毒分析完了,
汇编
课也学完了,而且反过来看那些复杂的计算程序都是那么顺理成章,不攻自破了。实际上,从一些实用的系统功能开始学习
汇编
远比学矩阵计算容易理解。 正如最经典的C程序就是那个“Hello,World!”一样,这个程序的有名并不是因为它用高深复杂的语句放倒了一大批人,而是它以最简单易懂的方式让人们走入C语言的大门。对于Win32
汇编
也是如此,从最简单的例子开始总是没错的,笔者建议读者跟随本书中从简到繁的例子,努力做到理解并灵活引用这些例子中的各种功能,正如“熟读唐诗三百首,不会写诗也会吟”,最后能够熟练地
使用
Win32
汇编
来解决各种
编程
需求就是最大的胜利。 另外,正如前面讲到的,
汇编
语言的学习必须和操作系统紧密结合。经过简单的调查,笔者发现很多高校
使用
的
汇编
教程还是停留在清华91版《IBM-PC
汇编
语言程序设计》之类的教材上,虽然这些教材中基础知识部分永远不会过时,但涉及操作系统的部分还是停留在
DOS
阶段。随着
DOS
操作系统的悄然引退,继续把精力花在上面是一种浪费,因为任何语言都必须有应用的平台,否则课程学完之后会尴尬地发现没有地方可以应用。笔者认为,在《IBM-PC
汇编
语言程序设计》之类传统教材中的基础部分学习完毕以后,重点就应该转向Win32
汇编
,以及保护模式方面的知识。 关于本书的内容 本书尝试从编写应用程序的角度,从“Hello,World”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个从简单到复杂的例子,逐步深入Win32
汇编
编程
的方方面面。笔者从事
汇编
编程
已经有十几年的历史了,从8086时代的
DOS
汇编
编程
开始到当前的Win32
汇编
编程
,从一个初学者到现在能利用Win32
汇编
来解决大部分
编程
需求,中间也经过了很长时间的摸索和大量的挫折,所以笔者很清楚初学者在哪些地方会遇到问题,但是涉及Win32
汇编
的书籍却实在太少了。正是因为如此,笔者决心把本书的目标定为:能让读者入门并在最后能熟练掌握Win32
汇编
编程
,而不是那种深入系统奥秘一类的书籍。 从这个目标出发,本书的选材中尽量去掉已经有其他书籍详细讨论的部分,因为要一本书涉及全部方面是不现实的。内容全面就必然不精,内容深刻就必须围绕一个中心点,所以本书的内容并不详细讨论一般
汇编
教材的基础部分,如处理器结构和保护模式等,也不准备涉及Windows驱动程序、COM
编程
或者其他能够冠以“密技”头衔的内容。本书主要的内容将放在32位宏
汇编
对比
DOS
汇编
所不同的部分,以及Win32应用程序的
汇编
实现上。不求全面,只求精也!(说句老实话,也不敢对自己不精通的地方妄加评论,以免破坏自己的良好形象。
C语言竞赛
编程
题
C++,C,竞赛
编程
题,练习,清华,尹成,C语言是一种引用广泛,并且实现灵活的一种计算机
编程
语言,用C语言编出来的程序,可以在很多平台上运行,可移植性强。例如,计算机操作系统等大型软件都可以用C语言来编写完成。不仅如此,我们用的众多聊天工具也可以用C语言来实现。具体的C语言
编程
内容请参加C或者C++等。 C语言有一个突出的优点就是适合于多种操作系统, 如
DOS
、UNIX,也适用于多种机型。 当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。 总之,C语言既有高级语言的特点,又具有
汇编
语言的特点;既是一个成功的系统设计语言,有时一个
使用
的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。竞赛
编程
试题代码
C语言嵌入式linux
编程
不仅要求学员掌握C语言的基本语法,还要对 1)计算机基本原理及系统结构、ARM
汇编
、指令集与微架构 2)程序的编译、链接、重定位、安装、加载运行原理 3)C程序运行的堆栈管理、内存泄露、栈溢出 4)C标准、C...
INTEL
汇编
语言教程
汇编
语言程序设计教程,不仅有16位的还有32位的。讲得非常好。而且还介绍了
汇编
和C语言的混合
编程
问题。 章次 章节名称 学习时间 1 预备知识 2 CPU资源和存储器 3 操作数的寻址方式 4 标识符和表达式 5 微机CPU的指令系统 6 程序的基本结构 7 子程序和库 8 输入输出和中断 9 宏 10 应用程序的设计 11 数值运算协处理器 12
汇编
语言和C语言 附录1
汇编
语言
编程
和调试工具 附录2 Pentium指令的执行周期数 附录3 中断列表 附录4
DOS
和BIOS的宏定义 附录5 键盘按键的各种编码对照表 附录6 几个重要内存单元地址
学习win32
汇编
-初级入门
一、引言 Win32应用程序一般
使用
C语言
编程
,但是在某些需要进行深层
编程
的情况下,例如Win32应用程序执行机制分析、病毒清除、加密解密等深层
编程
,或者对于某些速度要求较高的程序,需要
使用
汇编
语言(甚至机器语言)直接编写Win32应用程序。Win32应用程序虽然和其他32位应用程序(例如32位保护模式
DOS
程序)一样可以
使用
386
汇编
语言和保护模式
编程
,但是Win32应用程序的执行机制与其他32位应用程序有一定的差别,例如消息循环、动态链接等,Win32
汇编
语言也有其特殊的
编程
方式。目前国内极少看到有关Win32
汇编
语言的资料,市面上的
汇编
语言书籍一般只介绍
DOS
实模式
汇编
语言和386保护
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章