bug由来 昆虫 臭虫
机器码 由二进制组成 是给计算机看 计算机可以直接执行
汇编码 由数字和字母和符号组成的一些代码
问题 汇编语言书写的代码必须按照计算的计算流程书写
写代码的流程就是在模拟计算机运行的流程

make space a in 3
 make space b in 4
 make space c in a add b
 c=a+b


高级编程语言源码
由数字 字母 符号组成
可以按照人类的思维习惯去书写代码

int a=3;
 int b=4;
 int c=a+b;


源代码-机器码 编译
常量:不变的量
1.直接在程序中出现的数据(字面量)
2.将一个变量通过一些手段变成一个常量
限制变量的值不可修改
特殊的:在python中不存在第二种
变量:变化的量

变量的本质:进程空间中一个临时的存储空间

并且该临时存储空间有其自己的物理内存地址(由计算机随机分配)

因为变量的地址是随机的,所以我们不应该直接通过该变量的地址去操作数据

怎么办?我们可以给变量起别名 变量名

系统底层会自动为 变量名称和其针对的变量的地址 做一个表格

其实 在C语言里面 这个变量的地址 就是 指针

那么 该空间中存啥?先记住一点 无论是哪种语言 变量空间中永远不可能存数据本身 存的是数据的地址

常量池中 常量数据的地址
堆内存中 对象数据的地址
进程中 变量的地址

python 汇编与反汇编 python嵌入汇编代码_ide

变量本质

python 汇编与反汇编 python嵌入汇编代码_数据类型_02

int a=3;

int b=3;

int c ;指针变量
c=&b;
c本身还是变量有自己的地址 c里存的是b的地址0
456

printf("%d",c); 0x456 b的地址

printf("%d",&c);0x789 c的地址

printf("%d",c);0x333是一个常量的地址->常量
int **d; 首先
d是个指针变量,意思可以存普通变量的地址,再加个*,也是指针变量,但是存的是另外一个指针的地址

d=&c;

printf("%d",&d);0x666

printf("%d",d);空间找 0x789

printf("%d",d);按照0789地址找c 打印0x456

printf("%d",d);*d=c c找b **d=b 打印0×333 是常量 所以打印 3
printf("%d",
&
&d);&d d的地址0×666 **&d找c 找c地址 再*一下 又在c 所以打印 0x456

变量永远存的是数据的地址

C 里面只有常量池中的地址 变量的地址

Java 里面只有常量池中的地址 堆中的地址 没有指针

Python 里面只有堆中的地址

Python中一切数据皆对象高级编程语言之间区别

静态编译型 C C++ Java

编译:先将源代码整体编译完成 生成一个可执行程

然后运行该可执行程序即可

一本英文书->翻译->一本中文书

c++

python 汇编与反汇编 python嵌入汇编代码_数据类型_03

编译

python 汇编与反汇编 python嵌入汇编代码_数据类型_04


python 汇编与反汇编 python嵌入汇编代码_数据_05

VSC强制打开后乱码

python 汇编与反汇编 python嵌入汇编代码_数据类型_06


.c->编译->.exe C语言

python 汇编与反汇编 python嵌入汇编代码_数据_07

编译

python 汇编与反汇编 python嵌入汇编代码_数据类型_08


python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_09


.java->编译->.class Java语言解释型:逐行进行编译且运行

python 汇编与反汇编 python嵌入汇编代码_数据_10


同声传译 别人说一句英文 我翻译一句

动态解释型 Python JavaScript Matlab

静态:变量数据类型一旦确定 则不可更改 但是可以向下兼容

动态:变量数据类型随着数据的变化而变化

a=3
 #id() 查看当前数据的地址
 print(id(a)) # 查看a所存储的数据在堆内存中的地址
 print(id(3)) # 查看3这个数据在堆内存中的地址
 print(type(a))# int

python 汇编与反汇编 python嵌入汇编代码_数据类型_11


python 汇编与反汇编 python嵌入汇编代码_ide_12


两个地址一样

a=3.14
 print(id(a)) # 查看a所存储的数据在堆内存中的地址
 print(id(3.14)) # 查看3.14这个数据在堆内存中的地址
 print(type(a))

python 汇编与反汇编 python嵌入汇编代码_数据类型_13


数据类型变为浮点型。a=“一二三四”

print(id(a))
 print(id(“一二三四”))
 print(type(a))

python 汇编与反汇编 python嵌入汇编代码_ide_14


python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_15


数据类型变为字符串。

“”" 三个引号
重点:
变量本身是内存当中的一个临时存储空间
该空间中存的数据的地址(数据都在堆)
变量的数据类型随着所存储的数据变化而变化

“”“
# 单行注释
“”“ 多行注释 三个双引号中间写 ”“”

练习题

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_16


print((分子)/(分母))
 print((9.54.5-2.53)/(45.5-3.5))

python 汇编与反汇编 python嵌入汇编代码_ide_17

python 汇编与反汇编 python嵌入汇编代码_ide_18

python 汇编与反汇编 python嵌入汇编代码_数据_19


print(4*(1-1/3+1/5-1/7+1/9-1/11))
 print(4*(1-1/3+1/5-1/7+1/9-1/11+1/13-1/15))

python 汇编与反汇编 python嵌入汇编代码_数据_20

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_21

python 汇编与反汇编 python嵌入汇编代码_数据类型_22

#提示用户输入摄氏温度

cel=float(input(“Enter a degree in Celsius:”))

#利用已知公式求华氏温度

fah=(9/5)*cel+32

#输出

#print格式化输出

.0 .1 表示保留零位和一位小数

print("%.0f Celsius is %.1f Fahrenheit"%(cel,fah))

python 汇编与反汇编 python嵌入汇编代码_数据_23

python 汇编与反汇编 python嵌入汇编代码_数据类型_24

python 汇编与反汇编 python嵌入汇编代码_ide_25

#提示用户输入半径和高
eval 同时输入两个A,B=eval(input(“Enter the A and B of a cylinder:”))
 radius,length=eval(input(“Enter the radius and length of a cylinder:”))
 pi=3.1415
 #计算底面积 area
 area=radius**2pi
 #计算体积volume
 volume=arealength

#输出

print(“The area is %.4f”%area)
 print(“The volume is %.1f”%volume)

python 汇编与反汇编 python嵌入汇编代码_数据_26

python 汇编与反汇编 python嵌入汇编代码_数据类型_27

area 数据取决于pi的给定值 所以是正确的

python 汇编与反汇编 python嵌入汇编代码_数据_28

#提示用户输入一个0~1000之间的数字

number=int(input(“Enter a number between 0 and 1000:”))
 number=999
 a=number%10 #9
 number//=10 #99
 b=number%10 #9
 number//=10 #9
 c=number%10 #9
 sum=a+b+c
 print(sum)

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_29

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_30

python 汇编与反汇编 python嵌入汇编代码_数据类型_31

#提示用户输入一个分钟数:

#分钟//60 =整小时 小时//24=整天数 天数//365=整年 天数%365 剩下的天数

minutes=int(input(“Enter the number of minutes:”))
 hours=minutes//60
 days=hours//24
 years=days//365
 shengyu=days%365
 print("%d minutes is approcimately %d years and %d days"%(minutes,years,shengyu))

python 汇编与反汇编 python嵌入汇编代码_数据_32

python 汇编与反汇编 python嵌入汇编代码_数据类型_33

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_34

python 汇编与反汇编 python嵌入汇编代码_数据类型_35


#提示用户输入三个坐标点 六个数据

x1,y1,x2,y2,x3,y3=eval(input(“Enter three points for a triangle:”))
 #三个坐标两两成边
 side1=((x1-x2)**2+(y1-y2)**2)**0.5 #p1 p2
 side2=((x2-x3)**2+(y2-y3)**2)**0.5 #p2 p3
 side3=((x3-x1)**2+(y3-y1)**2)*0.5 #p3 p1
 #计算半周长
 s=(side1+side2+side3)/2
 #计算面积
 area=(s(s-side1)(s-side2)(s-side3))**0.5
 #输出
 print(“The area of the triangle is %.1f”%area)

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_36


python 汇编与反汇编 python嵌入汇编代码_数据_37

python 汇编与反汇编 python嵌入汇编代码_数据_38

#如何获取当前时间

#time模块 返回从1970年1月1日00:00:00至今所经过的毫秒数import timeimport time

#提示用户输入时区
 offset=int(input(“Enter the time zone offset to GMT:”))
 #总秒数
 totalSeconds=int(time.time())
 #当前秒数
 currentSeconds=totalSeconds%60
 #总分钟数
 totalMintues=totalSeconds//60
 #当前分钟数
 currentMintues=totalMintues%60
 #总小时数
 totalHours=totalMintues//60
 #当前小时数
 currentHours=(totalHours%24+offset)%24
 print(“The current time is %.f:%.f:%.f”%(currentHours,currentMintues,currentSeconds))

python 汇编与反汇编 python嵌入汇编代码_ide_39

检验一下我们是东八区输入8

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_40

正确

python 汇编与反汇编 python嵌入汇编代码_python 汇编与反汇编_41