🌐http://www.why.ink:8080/ICS/2023/Main_Page
PA
软件测试:编写测试用例
VScode里配置PA
直接用命令行做PA
系统
数据的机器级表示与处理
程序的转换及机器级表示
程序的链接
程序的执行
层次结构存储系统
异常控制流
I/O 操作的实现
冯·诺依曼结构
ALU
运算
操作
加(add)、减(sub)、与(and)、或(or)、
传送(mov)
未定义行为(undefined behavior)
未确定行为(unspecified behavior)
用程序二进制接口(Application Binary Interface,简称(ABI)
应用程序编程接口(Application Programming Interface,简称 API)
IA-32/x86-6
System V ABI
性能评价
用户
最终用户(end user)
系统管理员(system administrator
应用程序员(application programme
系统程序员(system programmer)
吞吐率(throughput)
响应时间(response time)
带宽(bandwidth)
执行时间(execution time)
等待时间(latency
CPU时间
用户CPU时间
系统CPU时间
其他时间
等待I/O操作完成的时间
执行其他用户程序的时间
主频:CPU中主脉冲信号的时钟频率(clock rate)=CPU时钟周期的倒数
CPI(Cycles Per Instruction)
用户CPU时间=程序总时钟周期数÷时钟频率=程序总时钟周期数×时钟周期
时钟周期
阿姆达尔定律(Amdahl Law)
概论
数据
类型
数据结构
无符号整数类型(unsigned int
带符号整数类型(int)
单精度浮点数类型(float)
数组(array)
结构(struct)
进位计数制、
基本运算及其运算电路
二进制定点数的编码表示
无符号整数和带符号整数的表示
IEEE754浮点数表示标准
西文字符和汉字的编码表示
C语言中各种类型数据的表示和转换
数据的宽度和存放顺序
二进制编码的十进制数(Binary Coded Decimal Number,简称BCD)表
表示(Representation)
转换(Translation)
执行控制流(Control flow)
并发
异常
I/O操作的执行控制流(用户态→内核态)
链接(Link)
PART II
缓存
MIPS
ARM
ISA
指令集体系结构(Instruction Set Architecture)
指令
寄存器
寻址方式
安全漏洞
高性能
补码
4294967295 = –1 = 0xffffffff = 1111...1111B
2147483648 = –2147483648 = -2^31 = 1000...0000B = 0x80000000 = - 0111...1111B+1
IEEE 754
system call
execve("./a.out", ["./a.out"], 0x7ffd48f06320 /*
40 vars */) = 0
brk(NULL) = 0x5588f316d000
mmap(NULL, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f1947cd2000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffdd0a950b0)
= -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT
(No such file or directory)
Little endian: GIF, PC Paintbrush, Microsoft RTF,etc
Big endian: Adobe Photoshop, JPEG, MacPaint, etc
“&”实现“掩码”操作:y & 0xFF00
逻辑/算术移位
https://nju-projectn.github.io/ics-pa-gitbook/ics2023/
Interactive Graph
Table Of Contents