汇编的指令跟intel和amd cpu的指令有什么关系啊

2025-03-26 13:00:44
推荐回答(2个)
回答1:

他们的区别就在于他们不是一个厂家生产的CPU,就算是一个厂家生产的cpu也会随着产品升级指令集也会改变
给你举个例子,有A,B两家厂家生产CPU,
A厂家规定它自己家的CPU,遇见00100001(只是假设)这条指令做一个加法运算,我们可以把它看做A厂家cpu指令集中的其中一条指令,也就是A厂家生产的CPU以后一见到00100001就会做加法运算,当然这是A厂家就这么生产它的,它肯定照做
而B厂家规定它自己的CPU,遇见00100001这条指令做一个除法运算,这就是B厂家cpu指令集其中一条指令,我们知道,在计算机中全部都是二进制数字
那么问题来了,如果你把为A厂家写的汇编程序,假设其中有一条加法运算,肯定要用到00100001这条加法指令,如果你把这个程序拿到B厂家生产的cpu上运行,虽然代码中还是使用00100001,但是B厂家CPU遇见这个数字就只会做除法指令,那么就会出错了
说了这么一堆,也就是说,每一个厂家生产的CPU不同的,他们的指令集也不同,指令不同,那么对应的汇编语言也不同,所以汇编的移植性很差,拿到不是同一种处理器的机子上就不能用了

回答2:

题目问:
.... 这些指令有什么区别啊

楼主这题目,规模,确实是太大了。

网友采纳的答案,说了这许多的废话,也没有回答出来,楼主所问的问题。

其实,找两个最简单的 CPU:8088、80386,列出几条不同的指令,写出区别,即可。