鱼C论坛

 找回密码
 立即注册
查看: 3861|回复: 8

想知道编写的软件是怎样和硬件相结合的

[复制链接]
发表于 2013-1-31 14:10:56 | 显示全部楼层 |阅读模式
10鱼币
       {:1_1:}想知道编写的软件是怎样和硬件相结合的

最佳答案

查看完整内容

你学学汇编就知道了啊 , 软件是发送指令给CPU, 通过各种汇编命令与寄存器、内存交换数据 ……其实主要是把指令给了CPU ,剩下的让它自己转就行啦
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-31 14:10:57 | 显示全部楼层
你学学汇编就知道了啊 , 软件是发送指令给CPU, 通过各种汇编命令与寄存器、内存交换数据 ……其实主要是把指令给了CPU ,剩下的让它自己转就行啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-31 15:10:55 | 显示全部楼层
额!!!这个问题让我迷惑了!!哪天懂了给我说下!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-31 16:59:40 | 显示全部楼层
看贴不回贴 都什么习惯呀?

                               
登录/注册后可看大图























                               
登录/注册后可看大图

苏州哪里卖防辐射服
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-31 21:53:05 | 显示全部楼层
本帖最后由 消失在黑暗中 于 2013-1-31 22:24 编辑

如果真想深究,建议学下操作系统原理。硬件都有驱动,比如主板驱动,网卡驱动,显卡驱动,键盘驱动,USB都有驱动等等。系统的内核就是驱动层面。操作系统管理资源,控制各种硬件。编写的软件无法直接操作硬件,除非你能写驱动,而是通过操作系统这个管理者,间接的操控硬件。软件是通过应用程序接口api间接控制硬件,比如在屏幕上显示文字,图像等等。

如果有人能用汇编就能操作硬件,牛逼啊!首先问你,驱动你都会写啊!
我以api的角度举个例子,软件是如何通过系统操作硬件的:
[code]HDC hDC;//设备上下文,这个叫法很多,总的说是GDI的数据结构。
HBITMAP hBitmap;//hbitmap是位图资源标示,res与代码编译生成的pe文件的资源区,
HBRUSH hBrush,hOldBrush;//画刷资源标示
RECT rect;
hDC=GetDC(hWnd);//获取hWnd窗口的dc
//由锯齿位图的位数据来创建一个位图
hBitmap=CreateBitmap(8,8,1,1,Zigzag);//根据资源生成位图,Zigzag指向位图的数据源,Zigzag可以用数组定义
//用新创建的位图来创建一个画刷
hBrush=CreatePatternBrush(hBitmap);//用指定的位图创建画刷
//将新创建的画刷选入DC中,从而使其成为当前画刷
hOldBrush=(HBRUSH)SelectObject(hDC,hBrush);
GetClientRect(hWnd,&rect);
//用当前画刷来填充一个区域
PatBlt(hDC,rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top,PATCOPY);//gdi函数,
SelectObject(hDC,hOldBrush);
ReleaseDC(hWnd,hDC);
//撤销新创建的位图和画刷
DeleteObject(hBrush);
DeleteObject(hBitmap);

如果真想用汇编 写个窗口,然后再窗口上输出图像,难!事实上都是api间接通过系统对硬件的操作

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-1 15:09:47 | 显示全部楼层
格式天下 发表于 2013-1-31 21:04
你学学汇编就知道了啊 , 软件是发送指令给CPU, 通过各种汇编命令与寄存器、内存交换数据 ……其实主要是把 ...

恩,等手头的学了这就去学汇编啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-1 16:26:13 | 显示全部楼层
硬件的基础就是先看《数字逻辑电路》与或非门以及各种寄存器构成的时序电路,看完理论上应该可以用现成芯片搭建简单的硬件电路,接下来主要看看数逻里面的状态机,搭建出状态机就可以接受一些输入并根据之前的状态产生相应的新状态和输出。这里的输入可能是几位2进制数,其实基本就是最底层的机器语言了。接着才是汇编语言之类乱七八糟更高层的东西。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-1 16:59:29 | 显示全部楼层
仰望天上的光 发表于 2013-2-1 16:26
硬件的基础就是先看《数字逻辑电路》与或非门以及各种寄存器构成的时序电路,看完理论上应该可以用现成芯片 ...

晕!啊   再看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-2 15:00:56 | 显示全部楼层
鱼c论坛是个好地方啊,可以学到好多东东
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-8 16:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表