首页
社区
课程
招聘
[旧帖] 在汇编语言中,有多线程的说法吗? 0.00雪花
发表于: 2014-6-21 09:56 18526

[旧帖] 在汇编语言中,有多线程的说法吗? 0.00雪花

2014-6-21 09:56
18526
在win32编程的时候,一个进程会生成很多线程。将这个程序反编译以后,转换成汇编语言,他是如何处理多线程的呢。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (41)
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
呵呵  你这个说法还真是我没有想过啊     我没有学过汇编    不过既然那些高级语言能够实现多线程   而高级语言编译后还是转化为汇编   那么我想汇编应该也能实现多线程操作的   可能是需要调用某些特殊的调用   让window知道这是多线程的代码啊  需要"同时"执行这些代码啊
2014-6-21 10:18
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你写过汇编 代码吗? 你知道什么是线程吗?  

这是一个很基础的问题。 线程是操作系统的概念 跟语言无关。
2014-6-21 10:46
0
雪    币: 292
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
sp......
2014-6-21 11:01
0
雪    币: 302
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
没有吧- -   冒个泡
2014-6-21 11:53
0
雪    币: 2153
活跃值: (740)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
+1
2014-6-21 11:57
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你的意思是,高级语言中才有线程的叫法,而汇编中是没有线程的?
那么WIN32中的多线程,反汇编以后,它会怎么处理同时进行的2个任务啊。
2014-6-21 12:55
0
雪    币: 378
活跃值: (702)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
你理解错了,他说得很明白了,线程和语言无关!
2014-6-21 13:09
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
直接写机器码算了,啥都可以
2014-6-21 13:11
0
雪    币: 6664
活跃值: (957)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
偶像啊,用机器码来写程序

不管什么语言都能实现多现成的,就看你的代码怎么样写了,你用汇编写100个或者几亿个都可以,前提是你的机器受的了.....
2014-6-21 13:51
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
11
你学的是16位的汇编,那个是单线程的,WINDOWS下都是多线程,所谓多线程,举例来说,一个工厂三班倒的上班,每个班里十个工人,然后你是个来工厂参观的人,你不明白工厂怎么生产如此多的产品的,等你学会了16位汇编和32位汇编就明白了,一天还是24小时,只不过他们三班倒了,你理解的是他们八小时怎么生产这么多产品的,所以你想不通。
2014-6-21 15:04
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
12
OD反汇编多线程还是一样,线程代码还是在程序代理里,就像工厂工人总共还是30 个人,只不过他们是24小时上班,OD反汇编还是一样,反出来的代码每个线程的代码还是每个线程的代码,没有任何困难,只不过是你没理解三班倒这个东西而已,三班倒就是个概念,你去工厂上过班就明白了,所以你需要去学校16位汇编和32位汇编
2014-6-21 15:06
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
13
在windows下,线程就是调用CreateThread创建的。汇编call api你会吧。。
你用C++最后还不是编译成汇编代码。。
线程是操作系统的概念,这没说错,线程和语言无关的。。
2014-6-21 15:11
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
其实在计算机内部是无法干多件事的。即多线程。那多线程是怎么实现的呢。就拿上网来讲吧。你在同一时间既要上传数据也要接收数据那怎么忙得过来呢。其实cpu干这两件事情(两个线程)还是有先后顺序的。由于计算机执行命令的速度很快。所以它可以先执行下载线程0.05ms然后保存现场再执行上传线程0.05ms然后循环。由于速度很快所以让你觉得两件事(两个线程)同时进行。具体时间怎么分配呢。系统有对应的机制。
2014-6-21 23:30
0
雪    币: 112
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
To14#:计算机不能同时做两件事?多核cpu在保护模式下就物理支持“多线程”怎么解释?
2014-6-21 23:55
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
汇编中涉及多线程的只有lock指令,多线程是一种技术,和语言无关。如果目标平台支持的话,使用汇编写程序肯定也是可以使用多线程的,只要使用平台提供的API注册一个线程上下文就实现多线程了---比如Windows平台提供的API是CreateThread。
2014-6-22 12:52
0
雪    币: 29
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
对一个单处理器系统来说单个cpu任何时刻只能执行一个线程,在一个单处理器系统中操作系统可以通过分时处理获得并发,系统为每个线程分配一个CPU时间片,每个线程只有在分配的时间片内拥有对CPU控制权,其他时间都在等待。即同一时间只有一个线程在运行,由于系统为每个线程划分的时间片很小,20ms左右,所以在用户看来好像是多个线程在同时运行,实际上一个线程执行了一个时间单元后另外的一个线程接着执行下一个时间单元,如此反复就是多线程并发。
2014-6-22 17:53
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
肯定有的,就是我不会
2014-6-24 13:32
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
同意 线程和语言无关 多线程是操作系统的东西 比如dos下就没有多线程
2014-6-25 11:14
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
有,线程是操作系统的概念, 和 语言无关
2014-6-25 21:25
0
雪    币: 43
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
和语言无关吧,代码里没什么区别
2014-6-26 20:49
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
[QUOTE=;]...[/QUOTE]
汇编可以写多线程程序,但是很少有人会去用汇编写
2014-6-29 15:12
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
有些操作系统纯用汇编写的,汇编肯定能实现多线程,多线程差不多也就是多任务处理,通过循环什么的就可以实现
2014-7-1 00:33
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
应该是可以的,多线程是操作系统为了更好的利用硬件和有更好的相应提出来的,只需用汇编把多线程的机理实现,就可以封装成多线程API,从而使其他应用调用。
2014-7-1 20:27
0
雪    币: 39
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
汇编一样有多线程,机器码都有
2014-7-2 18:46
0
游客
登录 | 注册 方可回帖
返回
//