├── README.md ├── week10 ├── README.md ├── lesson1 │ ├── 1.png │ ├── 10.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md ├── lesson2 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md ├── lesson3 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── README.md └── lesson4 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ └── README.md ├── week11 ├── 1.png ├── 10.png ├── 11.png ├── 12.png ├── 13.png ├── 14.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png ├── 9.png ├── README.md ├── lesson1 │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 12.png │ ├── 13.png │ ├── 14.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md └── lesson2 │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md ├── week12 ├── README.md ├── lesson1 │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 12.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6-1.png │ ├── 6-2.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md ├── lesson2 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ └── README.md └── lesson3 │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md ├── week2 ├── README.md ├── lesson1 │ └── README.md ├── lesson2 │ └── README.md ├── lesson3 │ ├── 1.png │ ├── README.md │ └── src │ │ └── unsigned_signed.c ├── lesson4 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── README.md │ ├── float.cpp │ └── infinity.c ├── lesson5 │ ├── 1.png │ └── README.md ├── lesson6 │ ├── 1.png │ └── README.md └── lesson7 │ ├── README.md │ └── test_endian.c ├── week3 ├── README.md ├── lesson1 │ └── README.md ├── lesson2 │ └── README.md ├── lesson3 │ ├── 1.png │ ├── README.md │ └── extend_trunc.c └── lesson4 │ ├── 1.png │ ├── 2.png │ └── README.md ├── week4 ├── README.md ├── lesson1 │ ├── 1.png │ └── README.md ├── lesson2 │ ├── 1.png │ ├── 2.png │ └── README.md └── lesson3 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ └── README.md ├── week5 ├── README.md ├── lesson1 │ ├── 1.png │ ├── 2.png │ └── README.md └── lesson2 │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9-1.png │ ├── 9-2.png │ └── README.md ├── week6 ├── README.md ├── lesson1 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ └── README.md ├── lesson2 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md ├── lesson3 │ ├── 1.png │ ├── 2.png │ └── README.md ├── lesson4 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ └── README.md ├── lesson5 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md └── lesson6 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ └── README.md ├── week7 ├── README.md ├── lesson1 │ ├── 1.png │ ├── 10.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── README.md └── lesson2 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ └── README.md ├── week8 ├── README.md ├── lesson1 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ └── README.md ├── lesson2 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── README.md ├── lesson3 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── README.md │ └── main.cpp └── lesson4 │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ └── README.md └── week9 ├── README.md ├── lesson1 ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png └── README.md ├── lesson2 ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png └── README.md └── lesson3 ├── 1.png ├── 10.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png ├── 9.png └── README.md /README.md: -------------------------------------------------------------------------------- 1 | # 计算机系统基础-袁春风 2 | -------------------------------------------------------------------------------- /week10/README.md: -------------------------------------------------------------------------------- 1 | # 第十周 2 | ## 链接概述和目标文件格式 3 | -------------------------------------------------------------------------------- /week10/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/1.png -------------------------------------------------------------------------------- /week10/lesson1/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/10.png -------------------------------------------------------------------------------- /week10/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/2.png -------------------------------------------------------------------------------- /week10/lesson1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/3.png -------------------------------------------------------------------------------- /week10/lesson1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/4.png -------------------------------------------------------------------------------- /week10/lesson1/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/5.png -------------------------------------------------------------------------------- /week10/lesson1/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/6.png -------------------------------------------------------------------------------- /week10/lesson1/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/7.png -------------------------------------------------------------------------------- /week10/lesson1/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/8.png -------------------------------------------------------------------------------- /week10/lesson1/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson1/9.png -------------------------------------------------------------------------------- /week10/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 可执行文件生成概述 3 | -------------------------------------------------------------------------------- /week10/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/1.png -------------------------------------------------------------------------------- /week10/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/2.png -------------------------------------------------------------------------------- /week10/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/3.png -------------------------------------------------------------------------------- /week10/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/4.png -------------------------------------------------------------------------------- /week10/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/5.png -------------------------------------------------------------------------------- /week10/lesson2/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/6.png -------------------------------------------------------------------------------- /week10/lesson2/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/7.png -------------------------------------------------------------------------------- /week10/lesson2/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/8.png -------------------------------------------------------------------------------- /week10/lesson2/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson2/9.png -------------------------------------------------------------------------------- /week10/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 目标文件格式概述 3 | -------------------------------------------------------------------------------- /week10/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/1.png -------------------------------------------------------------------------------- /week10/lesson3/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/2.png -------------------------------------------------------------------------------- /week10/lesson3/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/3.png -------------------------------------------------------------------------------- /week10/lesson3/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/4.png -------------------------------------------------------------------------------- /week10/lesson3/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/5.png -------------------------------------------------------------------------------- /week10/lesson3/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/6.png -------------------------------------------------------------------------------- /week10/lesson3/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/7.png -------------------------------------------------------------------------------- /week10/lesson3/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson3/8.png -------------------------------------------------------------------------------- /week10/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## ELF可重定位目标文件 (链接视图) 3 | -------------------------------------------------------------------------------- /week10/lesson4/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson4/1.png -------------------------------------------------------------------------------- /week10/lesson4/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson4/2.png -------------------------------------------------------------------------------- /week10/lesson4/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson4/3.png -------------------------------------------------------------------------------- /week10/lesson4/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson4/4.png -------------------------------------------------------------------------------- /week10/lesson4/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson4/5.png -------------------------------------------------------------------------------- /week10/lesson4/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson4/6.png -------------------------------------------------------------------------------- /week10/lesson4/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week10/lesson4/7.png -------------------------------------------------------------------------------- /week10/lesson4/README.md: -------------------------------------------------------------------------------- 1 | # 第四讲 2 | ## ELF可执行目标文件 (执行视图) 3 | -------------------------------------------------------------------------------- /week11/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/1.png -------------------------------------------------------------------------------- /week11/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/10.png -------------------------------------------------------------------------------- /week11/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/11.png -------------------------------------------------------------------------------- /week11/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/12.png -------------------------------------------------------------------------------- /week11/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/13.png -------------------------------------------------------------------------------- /week11/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/14.png -------------------------------------------------------------------------------- /week11/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/2.png -------------------------------------------------------------------------------- /week11/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/3.png -------------------------------------------------------------------------------- /week11/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/4.png -------------------------------------------------------------------------------- /week11/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/5.png -------------------------------------------------------------------------------- /week11/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/6.png -------------------------------------------------------------------------------- /week11/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/7.png -------------------------------------------------------------------------------- /week11/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/8.png -------------------------------------------------------------------------------- /week11/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/9.png -------------------------------------------------------------------------------- /week11/README.md: -------------------------------------------------------------------------------- 1 | # 第十一周 2 | ## 符号及符号解析 3 | -------------------------------------------------------------------------------- /week11/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/1.png -------------------------------------------------------------------------------- /week11/lesson1/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/10.png -------------------------------------------------------------------------------- /week11/lesson1/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/11.png -------------------------------------------------------------------------------- /week11/lesson1/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/12.png -------------------------------------------------------------------------------- /week11/lesson1/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/13.png -------------------------------------------------------------------------------- /week11/lesson1/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/14.png -------------------------------------------------------------------------------- /week11/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/2.png -------------------------------------------------------------------------------- /week11/lesson1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/3.png -------------------------------------------------------------------------------- /week11/lesson1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/4.png -------------------------------------------------------------------------------- /week11/lesson1/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/5.png -------------------------------------------------------------------------------- /week11/lesson1/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/6.png -------------------------------------------------------------------------------- /week11/lesson1/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/7.png -------------------------------------------------------------------------------- /week11/lesson1/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/8.png -------------------------------------------------------------------------------- /week11/lesson1/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson1/9.png -------------------------------------------------------------------------------- /week11/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 符号及符号表 3 | -------------------------------------------------------------------------------- /week11/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/1.png -------------------------------------------------------------------------------- /week11/lesson2/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/10.png -------------------------------------------------------------------------------- /week11/lesson2/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/11.png -------------------------------------------------------------------------------- /week11/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/2.png -------------------------------------------------------------------------------- /week11/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/3.png -------------------------------------------------------------------------------- /week11/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/4.png -------------------------------------------------------------------------------- /week11/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/5.png -------------------------------------------------------------------------------- /week11/lesson2/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/6.png -------------------------------------------------------------------------------- /week11/lesson2/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/7.png -------------------------------------------------------------------------------- /week11/lesson2/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/8.png -------------------------------------------------------------------------------- /week11/lesson2/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week11/lesson2/9.png -------------------------------------------------------------------------------- /week11/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 静态链接与符号解析 3 | -------------------------------------------------------------------------------- /week12/README.md: -------------------------------------------------------------------------------- 1 | # 第十二周 2 | ## 重定位及动态链接 3 | -------------------------------------------------------------------------------- /week12/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/1.png -------------------------------------------------------------------------------- /week12/lesson1/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/10.png -------------------------------------------------------------------------------- /week12/lesson1/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/11.png -------------------------------------------------------------------------------- /week12/lesson1/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/12.png -------------------------------------------------------------------------------- /week12/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/2.png -------------------------------------------------------------------------------- /week12/lesson1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/3.png -------------------------------------------------------------------------------- /week12/lesson1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/4.png -------------------------------------------------------------------------------- /week12/lesson1/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/5.png -------------------------------------------------------------------------------- /week12/lesson1/6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/6-1.png -------------------------------------------------------------------------------- /week12/lesson1/6-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/6-2.png -------------------------------------------------------------------------------- /week12/lesson1/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/7.png -------------------------------------------------------------------------------- /week12/lesson1/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/8.png -------------------------------------------------------------------------------- /week12/lesson1/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson1/9.png -------------------------------------------------------------------------------- /week12/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 符号的重定位 3 | -------------------------------------------------------------------------------- /week12/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson2/1.png -------------------------------------------------------------------------------- /week12/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson2/2.png -------------------------------------------------------------------------------- /week12/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson2/3.png -------------------------------------------------------------------------------- /week12/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson2/4.png -------------------------------------------------------------------------------- /week12/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson2/5.png -------------------------------------------------------------------------------- /week12/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 可执行文件的加载 3 | -------------------------------------------------------------------------------- /week12/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/1.png -------------------------------------------------------------------------------- /week12/lesson3/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/10.png -------------------------------------------------------------------------------- /week12/lesson3/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/11.png -------------------------------------------------------------------------------- /week12/lesson3/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/2.png -------------------------------------------------------------------------------- /week12/lesson3/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/3.png -------------------------------------------------------------------------------- /week12/lesson3/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/4.png -------------------------------------------------------------------------------- /week12/lesson3/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/5.png -------------------------------------------------------------------------------- /week12/lesson3/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/6.png -------------------------------------------------------------------------------- /week12/lesson3/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/7.png -------------------------------------------------------------------------------- /week12/lesson3/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/8.png -------------------------------------------------------------------------------- /week12/lesson3/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week12/lesson3/9.png -------------------------------------------------------------------------------- /week12/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## 共享库和动态链接 3 | -------------------------------------------------------------------------------- /week2/README.md: -------------------------------------------------------------------------------- 1 | # 第二周 2 | ## 数据的表示和存储 3 | -------------------------------------------------------------------------------- /week2/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 机器级数据 3 | - 数值数据 无符号数 有符号数 浮点数 4 | - 非数值数据 逻辑值(包括位串) 西文和汉字 5 | 计算机中的所有信息都用二进制来编码 6 | 二进制编码的原因 7 | > 制造一个有两个稳定态的物理器件比较容易 8 | > 二进制计数,编码,运算规则简单 9 | > 便于逻辑运算 10 | > 可方便的用逻辑电路实现算数运算 11 | 12 | ## 真值和机器数 13 | - 真值 现实中真正的数值 14 | - 机器数 在计算机中由0和1编码的序列 15 | ## 数值数据表示的三要素 16 | - 进位计数制 2进制 8进制 10进制 16进制 17 | - 定点表示还是浮点表示 解决小数点问题 18 | > 定点整数 定点小数 浮点数(可用一个定点整数和一个定点小数表示) 19 | 20 | - 如何用二进制编码 解决正负号问题 21 | 22 | > 原码 反码 补码 移码 23 | 24 | ## 十进制到二进制的转换 25 | - 整数部分 除基取余(商为0) 从下到上 26 | - 小数部分 乘基取整(积为1) 从上到下 现实中的小数可能无法在计算机中用0和1精确表示 27 | ## 小数点怎么表示 28 | ### 在计算机中约定小数点的位置 29 | - 定点数 约定在固定位置 30 | > 定点小数 用来表示浮点数的尾数部分 31 | > 定点整数 用来表示整数 分为无符号数和有符号数 32 | - 浮点数 位置约定可以浮动(用一个数表示) 可以用一个定点小数和一个定点整数表示 33 | 结论: 要解决数值数据的表示问题,只要解决定点数的编码问题。 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /week2/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 定点数的表示 3 | ### 原码 高位为符号位(0为正数,1为负数),其余为数据位 4 | #### 优点 5 | > 容易理解 6 | 7 | #### 缺点 8 | > 0的表示不唯一,故不利于编程 9 | > 加减法运算方式不统一 10 | > 需要额外对符号位进行处理,不利于硬件设计 11 | 12 | ##### 所以整数一般都采用补码表示,而浮点数的位数用**原码定点数**表示。 13 | 14 | ### 反码 15 | > 16 | ### 补码 17 | > 在一个模运算系统中,一个数与它除以模后的余数等价。 18 | 19 | ####求真值的补码 20 | > 一个负数的补码等于模减去该数绝对值。 21 | > 对于某一确定的模,一个数(正)减去小于模的另一个数(正),总可以用这个数加上另一个数负数的补码来代替。(减法可以用加法代替) 22 | > 负数补码:对应正数的各位取反,最右位加1 23 | > 补码定义: x的补码=2^n+x 24 | > >> 正数的补码:符号位为0,数值部分不变。 25 | > >> 负数的补码:符号位为1,数值部分“各位取反,末位加1” ,简便算法是“从右向左,遇到的第一个1之前的各位取反” 26 | 27 | ####求补码的真值 28 | > 最高位的权值为-2^n-1 29 | > 简便求法:最高为0时,为正数,数值部分相同; 最高位为1时,为负数,数值部分各位取反,末位加1 30 | 31 | #### 变形补码 32 | > 双符号,用于存储可能溢出的中间结果。 33 | 34 | ### 移码 35 | > 将真值加上一个偏移,然后转化为二进制数(原码)表示, 一般对于n位编码,偏移值设为2^(n-1)或者2^(n-1)-1 36 | > 移码用来表示浮点数的阶 37 | 38 | #### 为什么用移码表示浮点数的阶呢 39 | > 便于浮点数加减运算时的对阶进行操作 (比较大小) 移码是一种线性映射 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /week2/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson3/1.png -------------------------------------------------------------------------------- /week2/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## 无符号整数和带符号整数 3 | ### 机器中位的排列顺序方式 4 | > 大端法 MSB在前 LSB在后 5 | > 小端法 LSB在前 MSB在后 6 | 7 | ### 无符号整数 8 | > 一般用在全部是正数且不出现负值的情况下,例如,地址运算,编号等。 9 | > 无符号整数编码中没有符号位 10 | > 能表示的最大值大于位数相同的带符号最大整数值。 11 | 12 | ### 带符号整数 13 | > 计算机必须能够处理正数和负数 14 | 15 | #### 三种定点整数表示方法 16 | - 原码 用来表示浮点数的尾数部分 17 | - 移码 用来表示浮点数的阶(指数) 18 | - 补码 50年代以后,所有计算机的带符号整数都用补码表示 19 | #### 为什么使用补码表示有符号整数 20 | > 1. 补码运算系统是模运算系统,便于加减法的统一 21 | > 2. 补码中的0的表示唯一 22 | > 3. 比原码多表示一个最小的负数 23 | 24 | ### C语言中的整数 25 | > 无符号数 常在后面加一个'u'或者'U'表示无符号数 26 | > 若同时有无符号数和有符号数, 则C编译器将有符号数转化为无符号数 27 | 28 | -------------------------------------------------------------------------------- /week2/lesson3/src/unsigned_signed.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main (int argc, char *argv[]) 4 | { 5 | int i = -1; 6 | unsigned int u = 2147483648; 7 | 8 | printf("i = %d %u\n", i, i); 9 | printf("u = %u %d\n", u, u); 10 | 11 | if (-2147483648 < 2147483647) 12 | printf ("-2147483648 < 2147483647 is true\n"); 13 | else 14 | printf ("-2147483648 < 2147483647 is false\n"); 15 | 16 | if (-2147483648 - 1 < 2147483647) 17 | printf ("-2147483648 - 1 < 2147483647\n"); 18 | else if (-2147483648 - 1 == 2147483647) 19 | printf ("-2147483648 - 1 == 2147483647\n"); 20 | else 21 | printf ("-2147483648 - 1 > 2147483647\n"); 22 | 23 | return 0; 24 | } 25 | -------------------------------------------------------------------------------- /week2/lesson4/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson4/1.png -------------------------------------------------------------------------------- /week2/lesson4/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson4/2.png -------------------------------------------------------------------------------- /week2/lesson4/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson4/3.png -------------------------------------------------------------------------------- /week2/lesson4/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson4/4.png -------------------------------------------------------------------------------- /week2/lesson4/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson4/5.png -------------------------------------------------------------------------------- /week2/lesson4/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson4/6.png -------------------------------------------------------------------------------- /week2/lesson4/README.md: -------------------------------------------------------------------------------- 1 | # 第四讲 2 | ## 浮点数的编码表示 3 | > 最高位(0位)表示符号位, 1-8位(移码)表示阶码, 9-31位表示尾数(与一个不明显表示的数一起) 4 | > 所有的通用计算机都适用IEEE754标准 5 | > 单精度表示(1+8+23) 双精度表示(1+11+52) 小数点前有个隐含的1 1.xxx(23位表示) 6 | > 浮点数往无穷大方向上表示的数值越来越稀疏。 7 | > 分为规格化数和非规格化数(尾数部分为0.xxx) 8 | 9 | ### 阶码 10 | > 全0和全1用来表示特殊的值 11 | > 0000 0001 - 1111 1110 (-126-127) 单精度偏置量为127(2^7-1),双精度偏置量为1023(2^10-1) 12 | > 单精度有8位阶码 双精度有11位阶码 13 | 14 | #### 偏置量为什么用127,而不是128 15 | > 因为用128,移码表示的范围是-127-126,最大表示范围较前者小 16 | 17 | ### 尾数 18 | > 单精度有23位尾数 双精度有52位尾数 表示时有一个不明显的1.xxxx 19 | 20 | ### 0的表示 21 | > 全0尾数,全0阶码,符号位任意 22 | 23 | ### 正负无穷的表示 24 | > 浮点数除以0,并不会溢出,结果为正负无穷大, 但是整数除以0会发生异常。 25 | > 全0尾数,全1的阶码,符号位为1为负无穷,符号位为0为正无穷。 26 | 27 | ### 非数的表示 28 | > 非零尾数,全1的阶码 29 | 30 | ### 非规格化数的表示 31 | > 尾数非零,全0阶码 32 | 33 | -------------------------------------------------------------------------------- /week2/lesson4/float.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using std::cout; 4 | using std::endl; 5 | using std::cin; 6 | 7 | int main (int argc, char *argv[]) 8 | { 9 | float f = 0; 10 | 11 | cout.setf (std::ios::fixed, std::ios::floatfield); 12 | 13 | while (1) 14 | { 15 | cout << "please input a float num: "; 16 | cin >> f; 17 | cout << f << endl; 18 | } 19 | 20 | return 0; 21 | } 22 | -------------------------------------------------------------------------------- /week2/lesson4/infinity.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main (int argc, char *argv[]) 4 | { 5 | printf ("%f\n", 2.0 / 0); 6 | printf ("%f\n", 0.0 / 0.0); 7 | 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /week2/lesson5/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson5/1.png -------------------------------------------------------------------------------- /week2/lesson5/README.md: -------------------------------------------------------------------------------- 1 | # 第五讲 2 | ## 非数值数据的表示 3 | ### 什么是非数值数据 4 | - 逻辑值 5 | - 西文和汉字 6 | - 多媒体数据 7 | ### 逻辑数据的表示 8 | > 表示逻辑表达式中的真与假 9 | > 用1位来表示, N位二进制数表示N位逻辑值 10 | > 运算时按位进行 11 | > 在计算机中也是一串0和1的序列,计算机靠指令识别 12 | 13 | ### 西文字符的表示 14 | 1. 特点 15 | > 是一种拼音文字,用有限几个字母可以拼出所有单词 16 | > 只需要对有限的字母,数字和标点符号编码 17 | > 所有字符不超过256个,用7或8位二进制位可以表示 18 | 19 | 2. 表示 常用的是ASCII编码(7位编码) 20 | > 可以表示1-9的数字 21 | > 表示a-z/A-Z的字母 22 | > 表示+ -...专用符号 23 | > 表示控制字符(不可打印或者显示) 24 | 25 | 3. 操作 26 | > 字符串操作,比如传送/比较 27 | 28 | #### 特殊的ascii编码表示 29 | > 0:0x30 A:0x41 a:0x61 空格:0x20 30 | 31 | ### 汉字和国际字符编码 32 | 1. 汉字特点 33 | > 一个汉字是一个方块图形 34 | > 数量巨大,总数超过6万 35 | 36 | 2. 编码形式 37 | - 输入码 对汉字用相应按键进行编码,用于输入 38 | - 内码 用于在系统中进行存储,查找,传送等处理 39 | - 输出码 描述汉字字模点阵或轮廓,用于显示/打印 40 | 41 | #### GB2312-80字符集 42 | 1. 分为三部分 43 | - 字母,数字和各种符号,包括英,俄,日,罗马字符,汉语拼音等687个 44 | - 一级常用汉字,3755个,按汉语拼音排列 45 | - 二级常用汉字,3008个,不常用,按偏旁部首排列 46 | 47 | 2. 汉字的区位码 48 | - 码表由94行,94列组成,行号为区号,列号为位号,各占7位 49 | - 指出了汉字在码表中的位置,共14位, 区号在左,位号在右 50 | 51 | 3. 汉字的国标码 52 | - 每个汉字的区号和位号各加32(20H),得到国标码 53 | - 国标码中的区号和位号也是各占7位,为了计算机表示方便,前面添加一个0构成一个字节 54 | 55 | #### 汉字内码 56 | > 至少需要两个字节才能表示一个汉字内码 57 | > 为了与ascii码区分,将国标码的两个字节第一位*置1*后得到一个汉字内码 58 | 59 | ### 多媒体信息的表示 60 | - 图形 61 | > 由图形上点的坐标点和控制点表示,坐标点和控制点由数值数据表示 62 | 63 | - 图像 64 | > 有单个像素的颜色,亮度,灰度表示,这些颜色亮度通过数值数据描述 65 | 66 | - 音频 67 | > 对模拟声音波形进行采样-量化-编码 ,得到随时间变化的序列 68 | 69 | - 视频 70 | > 随时间变化的图像,一个图像称为一帧 71 | 72 | - 音乐 73 | > 对乐器和乐谱进行编码 74 | 75 | -------------------------------------------------------------------------------- /week2/lesson6/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week2/lesson6/1.png -------------------------------------------------------------------------------- /week2/lesson6/README.md: -------------------------------------------------------------------------------- 1 | # 第六讲 2 | ## 数据宽度和存储容量的单位 3 | ### 数据的基本宽度 4 | 1. 比特 5 | > 计算机中存储,传输,处理的最小单位 6 | 7 | 2. 字节 8 | - 二进制信息计量的最基本单位 9 | - 现代计算机存储器按“字节”编址 10 | - 字节是最小可寻址单元 11 | - 如果以一个字节为排列单元,LSB表示最低有效位,MSB表示最高有效位 12 | 13 | 3. 字 14 | > **字**和**字长**的概念不同 15 | > 一个字始终是16位,但是字长在不同的体系结构中是不同的,IA-32的字长是32位,IA-64的字长是64位 16 | 17 | 4. 双字和四字 18 | > 双字是32位,四字是64位 19 | 20 | 5. 字长 21 | > 字长指数据通路的宽度 22 | > 字长等于cpu的总线宽度,运算器的位数,通用寄存器的宽度(这些部件的宽度是一致的) 23 | > 字和字长的宽度可以一样也可以不一样 24 | 25 | ### 数据量的度量 26 | 1. 容量经常使用的单位 27 | - 千字节 KB **大写的K** 28 | - 兆字节 MB 29 | - 千兆字节 GB 30 | - 兆兆字节 TB 31 | 32 | 2. 通信中带宽的单位 33 | - 千比特/每秒 kb/s 10^3bps **小写的k** 34 | - 兆比特/每秒 Mb/s 35 | 36 | ### 程序中数据的宽度 37 | > 与特定类型,体系结构,编译器实现有关 38 | 39 | 40 | -------------------------------------------------------------------------------- /week2/lesson7/README.md: -------------------------------------------------------------------------------- 1 | # 第七讲 2 | ## 数据存储时的字节排列 3 | ### 数据的存储和排列顺序 4 | > 几乎所有的通用计算机的存储器都是按**字节**进行编址的 5 | > 一个基本数据可能会占用若干个存储单元 6 | > 变量的地址是其最小地址 7 | > 变量的存放顺序 大端/小端 8 | 9 | #### 大端方式 10 | > MSB所在的地址是数的地址 11 | 12 | #### 小端方式 13 | > LSB所在的地址是数的地址 14 | 15 | 16 | -------------------------------------------------------------------------------- /week2/lesson7/test_endian.c: -------------------------------------------------------------------------------- 1 | #include 2 | //union 的存放顺序是所有成员从低地址开始存放,各个数据利用同一个地址空间 3 | int main (int argc, char *argv[]) 4 | { 5 | union NUM 6 | { 7 | int a; 8 | char b; 9 | }num; 10 | 11 | num.a = 0x12345678; 12 | 13 | if (0x12 == num.b) 14 | printf ("Big Endian\n"); 15 | else 16 | printf ("Little Endian\n"); 17 | 18 | printf ("%x\n", num.b); 19 | 20 | return 0; 21 | } 22 | -------------------------------------------------------------------------------- /week3/README.md: -------------------------------------------------------------------------------- 1 | # 第三周 2 | ## 运算电路基础 3 | -------------------------------------------------------------------------------- /week3/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 数字逻辑电路基础 3 | ### 布尔代数 4 | > 关于0和1的一套数学运算体系 5 | 6 | - 0和1分别代替逻辑值“真”和“假” 7 | - 通过逻辑关系运算可以构建基于0和1的布尔代数运算 8 | - 最基本的逻辑运算有"与","或","非" 9 | - 任何一种逻辑表达式都可以写成以上三种基本运算的组合 10 | - 真值表反应输入与输出之间的关系 11 | 12 | #### 1位逻辑门电路 13 | 1. 三种基本逻辑门电路 14 | - 与门 15 | - 或门 16 | - 非门 17 | > 其他任何门电路都可以由以上三种基本门电路表示 18 | 19 | #### n位逻辑门电路 20 | > 重复使用n个相同的门电路 21 | 22 | ### 逻辑电路 23 | > 根据电路是否有存储功能,可以将逻辑电路分为两种 24 | - 组合逻辑电路 25 | > 没有存储功能,当前输出只与输入有关 26 | 27 | - 时序逻辑电路 28 | > 具有存储功能,当前输出不仅与输入有关,而且与当前电路的状态有关 29 | 30 | #### 功能部件 31 | > 利用基本逻辑门电路构成具有特定功能的组合逻辑部件 32 | - 编码器 33 | - 译码器 34 | - 多路选择器 35 | - 加法器 36 | 37 | ##### 实现一个功能部件的过程 38 | 1. 用一个**真值表**描述功能部件的输入输出关系 39 | 2. 根据真值表确定逻辑表达式 40 | 3. 根据逻辑表达式实现逻辑电路 41 | 42 | > 加法是由逻辑部件实现的,而其他算数运算部件都是基于加法器和逻辑运算实现的,因此,所有算数运算都是基于0和1以及逻辑运算实现的 43 | > 在整数加减运算的基础上,加上寄存器,移位器以及控制逻辑,就可以实现ALU,乘除运算以及浮点数运算电路 44 | 45 | ### 算数逻辑部件 ALU 46 | - 进行基本的算数运算与逻辑运算 47 | > 无符号整数加减运算 48 | > 带符号整数加减运算 49 | > 实现与,或,非以及异或运算 50 | 51 | - 核心部件是带标志的加法器 52 | - 输出除了和与差外,还有标志信息 53 | - 有一个操作控制端(ALUop),用来决定ALU所执行的处理功能,它的位数决定了操作的种类 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /week3/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 从C表达式到逻辑电路 3 | ### 从C表达式到运算类指令 4 | - 基本数据类型 5 | > - 无符号数(二进制位串), 带符号数(补码) 6 | > - 浮点数 (IEEE754标准) 7 | > - 位串,字符串 (ascii) 8 | 9 | - 基本运算类型 10 | > * 算数 (+ - * / <= < >= >) 关系运算符需要做减法 11 | > * 按位逻辑运算 (与或非) 12 | > * 逻辑运算 (一位) 13 | > * 移位 14 | > * 扩展和截断 15 | 16 | #### 计算机如何执行高级语言程序中的运算 17 | - 将各类表达式编译成指令序列 18 | > 先转化为汇编代码,然后由汇编代码生成机器代码 19 | 20 | - 计算机直接执行指令完成运算 21 | > 控制器对指令进行译码,产生控制信号送往运算电路 22 | 23 | - 操作数在运算电路中运算 24 | 25 | #### 数据的运算 26 | 1. 在高级语言程序中的运算 27 | - 整数算数运算,浮点数算数运算 28 | - 按位 逻辑 移位 位扩展和截断 29 | 30 | 2. 在指令集中的运算 31 | * 定点数的运算 32 | > * 算数运算 33 | > 带符号整数运算 :加减乘除/算数移位/符号扩展/取负 34 | > 无法好整数运算 :加减乘除/0扩展/逻辑左移/逻辑右移 35 | > * 逻辑运算 36 | > 与 或 非 37 | 38 | * 浮点数的运算 39 | > 加减乘除 40 | 41 | 3. 指令中的运算操作在运算电路中进行 42 | * 基本运算部件ALU,通用寄存器组,其他部件 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /week3/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week3/lesson3/1.png -------------------------------------------------------------------------------- /week3/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## C语言中涉及的运算 3 | 1. 算数运算 4 | > 无符号,带符号和浮点数的算数运算 5 | 6 | 2. 按位运算 7 | * 用途 8 | > 对位串实现相应的掩码操作或相应的其他操作 9 | 10 | * 操作 11 | > - 按位与 "&" 12 | > - 按位或 "|" 13 | > - 按位取反 "~" 14 | > - 按位异或 "^" 15 | 16 | 3. 移位运算 17 | * 用途 18 | > 提取部分信息 19 | > 扩大或缩小2,4,8...倍 20 | 21 | * 操作 22 | > - 左移 ">>" 23 | > - 右移 "<<" 24 | 25 | * 从运算符中无法判断是逻辑移位或算数移位,只能根据具体的操作对象决定 26 | > - 当操作数是无符号数时,发生的是逻辑移位 27 | > > 当发生逻辑左移时,可能会发生溢出(当左移移出的是1时) 28 | > - 当操作数是有符号数时,发生的是算数移位 29 | > > 当发生算数左移时,可能会发生溢出(当移出的符号位不等于新的符号位时) 30 | > > 算数右移时,低位移出,高位补符号位,可能会发生数据丢失(当低位移出一个1时) 31 | 32 | 4. 逻辑运算 33 | * 用途 34 | > 用于关系表达式的运算 35 | 36 | * 操作 37 | > - 与操作 "&&" 38 | > - 或操作 "||" 39 | > - 非操作 "!" 40 | 41 | 5. 位扩展和位截断运算 42 | * 用途 43 | > 数据转换时可能会需要数据扩展或截断 (没有专门的运算符) 44 | 45 | * 操作 46 | > 没有专门的运算符,根据类型转换前后数据的长短来决定是扩展还是截断 47 | > - 扩展 短转长 48 | > > 无符号扩展 补0 49 | > > 有符号扩展 补符号位 50 | > - 截断 长转短 51 | > > 强行将高位丢弃,可能会发生溢出 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /week3/lesson3/extend_trunc.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main (int argc, char *argv[]) 4 | { 5 | short i = -32768; 6 | unsigned short ui = i; 7 | int ii = i; 8 | unsigned int uii = ui; 9 | 10 | printf ("i = %d = %x\n", i, i); 11 | printf ("ui = %u = %x\n", ui, ui); 12 | printf ("ii = %d = %x\n", ii, ii); 13 | printf ("uii = %u = %x\n", uii, uii); 14 | 15 | int j = 32768; 16 | short s = (short) j; 17 | int k = s; 18 | 19 | printf ("j = %d = %x\n", j, j); 20 | printf ("s = %d = %x\n", s, s); 21 | printf ("k = %d = %x\n", k, k); 22 | 23 | return 0; 24 | } 25 | -------------------------------------------------------------------------------- /week3/lesson4/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week3/lesson4/1.png -------------------------------------------------------------------------------- /week3/lesson4/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week3/lesson4/2.png -------------------------------------------------------------------------------- /week3/lesson4/README.md: -------------------------------------------------------------------------------- 1 | # 第四讲 2 | ## 整数加减运算 3 | * C语言中的整数有 4 | > - 有符号整数 如char,short,int,long 5 | > - 无符号整数 如unsigned char,unsigned short, unsigned int,unsigned long 6 | 7 | * 指针,地址通常被声明称无符号整数,因此进行指针或地址运算时,需要进行无符号整数加减运算 8 | * 无符号加减运算和带符号加减运算的运算电路时相同的,这个加减运算电路成为**整数加减运算部件**,是基于**带标志加法器**实现的 9 | 10 | ### 条件标志位 11 | * 零标志位ZF 借位/进位标志CF 溢出标志OF 符号标志SF 12 | > ZF:当和位0,ZF为1,否则为0 13 | > CF:加法时往高位有进位或者减法时往高位没有进位为1,否则为0 14 | > OF:两个相同符号的数相加出的结果与他们的符号相反为1,否则为0 15 | > SF:与相加和的符号相同 16 | 17 | * 条件标志是运算电路产生的,放置到专门的寄存器中 18 | * 存放标志的寄存器称为**程序/状态字寄存器**或**标志寄存器**,每个标志对应寄存器中的一位 19 | 20 | #### 为什么要生成并保存条件标志 21 | > 为了在分支指令中被用来当作是否转移的条件 (if...else...) 22 | 23 | #### 整数加法溢出条件 24 | * 无符号加法时,溢出条件:CF=1 25 | * 有符号加法时,溢出条件:OF=1 26 | 27 | #### 减法比较大小规则 28 | * 无符号时:CF=0,则大于 29 | * 有符号时:OF=SF,则大于 30 | 31 | -------------------------------------------------------------------------------- /week4/README.md: -------------------------------------------------------------------------------- 1 | # 第四周 2 | ## 乘除运算及浮点数运算 3 | -------------------------------------------------------------------------------- /week4/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson1/1.png -------------------------------------------------------------------------------- /week4/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 整数的乘法运算 3 | * 通常,高级语言中的两个n位整数相乘的结果也是n位整数,即结果只取2n位结果中的低n位 4 | > 例如在C语言中,参加相乘的两个操作数类型必须一致,如果不一致,需要转换为一致的类型后再运算 5 | 6 | * 在计算机内部,一定有x^2>=0 吗 7 | > - 若x是带符号整数,则不一定 8 | > - 若x是浮点数,则一定 9 | * 什么情况下,乘积是正确的呢 (x * y = z) 10 | > - 对于有符号整数,如果高n位是全0或者全1,并且与低n位的最高位相等,则正确,否则不正确 11 | > - 对于无符号整数,如果高n位是全0,则正确,否则不正确 12 | > 在高级语言中判断 : !x||(z/x == y)为真 13 | 14 | * 硬件不判定是否溢出,仅保留2n位乘积,供软件使用 15 | > 如果程序不采用防止溢出的处理,且编译器也不生成用于溢出处理的代码,就会发生由于整数溢出而产生的错误 16 | 17 | * 乘法指令 18 | > - 无符号乘法指令 19 | > - 有符号乘法指令 20 | > 因为两种指令对于相同的两个操作数,乘积的低n位相同,但是高n位不同 21 | 22 | * 乘法指令不生成溢出标志,编译器根据2n位的乘积进行溢出判断 23 | 24 | ## 变量与常数之间的乘法运算 25 | > * 整数乘法运算比整数加减法,移位运算所需的时间多,通常一次乘法操作需要多个时钟周期,而加法和移位操作只需要1个或少于1个时钟 26 | 周期,因此编译器在处理变量与常数之间的乘积运算时,通常以移位,加法和减法来代替乘法运算 27 | > > 比如x * 20 (20 = 16 + 4)可以用 (x << 4) + (x << 2) 来代替,这样一个乘法运算转化位两次移位和一次加法 28 | > * 不管是无符号整数还是有符号整数,如果相乘发生溢出,则采用移位和加法操作也发生溢出 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /week4/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson2/1.png -------------------------------------------------------------------------------- /week4/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson2/2.png -------------------------------------------------------------------------------- /week4/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 整数的除法运算 3 | * 对于带符号整数,一般情况下不会发生溢出,只有一种情况例外:-2^(n-1) / (-1) = 2^(n-1) ,因为所得的商无法用补码表示 4 | > 因为商的绝对值不可能超过被除数的绝对值,因而不会发生溢出,所以除法运算不会发生像乘法操作那样的溢出漏洞 5 | 6 | * 因为是整数除法,所以所得的商也是整数,因此在不能整除的情况下就需要舍入,一般是按照朝0方向舍入 7 | > - 对于正数商,需要向下取整 8 | > - 对于负数商,需要向上取整 9 | 10 | * 整除0的结果用什么机器数表示 11 | > 结果无法用机器数表示 12 | > 整数除以0时,会发生**异常**, 此时操作系统会调用异常处理程序处理 13 | 14 | ## 变量与常数的除法运算 15 | > - 对于整数除法运算,由于计算机中除法运算比较复杂,并且不能使用流水线方式实现,因此一个除法指令需要30个或者更多的时钟周期,比 16 | 乘法指令的周期还要长,因此在写程序时尽量避免除法操作 17 | > - 为了缩短除法运算时间,编译器在处理一个变量与一个2的幂次方的常数除法时,通常会采用右移运算来实现 18 | > > - 无符号 采用逻辑右移 19 | > > - 有符号 采用算数右移 20 | > - 结果一定要取整数 21 | > > - 能整除时,移出的一定是0 22 | > > - 不能整除时,移出的位中有1,需要进行相应的处理 23 | > - 不能整除的情况,需要朝0舍入,即截断 24 | > > - 无符号整数和带符号正数 移出的低位直接舍弃 25 | > > - 带符号负整数 先加上偏移量(2^k-1),然后在右移k位,低位截断(k为右移位数) 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /week4/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson3/1.png -------------------------------------------------------------------------------- /week4/lesson3/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson3/2.png -------------------------------------------------------------------------------- /week4/lesson3/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson3/3.png -------------------------------------------------------------------------------- /week4/lesson3/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson3/4.png -------------------------------------------------------------------------------- /week4/lesson3/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson3/5.png -------------------------------------------------------------------------------- /week4/lesson3/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week4/lesson3/6.png -------------------------------------------------------------------------------- /week4/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## 浮点运算及结果 3 | * 设两个规格化浮点数分别为A=Ma * 2^Ea, B=Mb * 2^Eb,则 4 | > A + B = (A + B * 2^(Eb-Ea)) * 2^Ea (Ea > Eb) 减法类似 5 | > A * B = Ma * Mb * 2^(Ea+Eb) 6 | > A / B = Ma/Mb * 2^(Ea-Eb) 7 | 8 | * 上述运算可能出现如下几种情况 9 | > - 阶码上溢:一个正指数超过最大允许值 (32位最大允许值为127) 10 | > - 阶码下溢:一个负指数超过最小允许值 (32位最小允许值为-126) 11 | > - 尾数溢出:最高有效位有进位,进行右规(尾数右移,阶码加相应值) 12 | > - 非规格化尾数:尾数数值部分最高位为0,进行左规(尾数左移,阶码减相应值) 13 | > > 右规或者对阶时,因为尾数舍入,右段有效位丢失,解决办法是在运算过程中添加**保护位**,在运算过程中保留这些溢出位,直到最后给出运算结果时,才进行舍入。 14 | 15 | ### IEEE 754规定的五种异常情况 16 | 1. 无效运算 17 | > - 运算时有一个数是非有限值 比如 加减一个∞ ,0 * ∞ ,∞/∞ 18 | > - 结果无效 源操作数是NaN, 0/0, x%0, ∞%y 19 | 20 | 2. 除以0 (结果为无穷大) 21 | 3. 数太大,阶码上溢(超过127) 22 | 4. 数太小,阶码下溢(低于-126) 23 | 5. 结果不精确(舍入时引起) 例如1/3,1/10不能精确表示成浮点数 24 | > 上述情况硬件可以捕捉到,因此这些异常可以让硬件来处理,也可以让软件来处理。让硬件处理时,称为硬件陷阱。 25 | 26 | ### 浮点数加减运算 27 | > 进行尾数加减操作前,必须**对阶**,还要考虑舍入问题 28 | * 对阶操作 (目的是使两个数的阶码相等) 29 | > - 小阶向大阶看齐, 阶小的那个数的尾码右移,右移尾数等于两个阶码差的绝对值 30 | > - IEEE 754规定尾数右移时,要将*隐含的1*移到小数部分,高位补0, 移出的低位保留到特定的**附加位** 31 | 32 | #### 附加位 33 | > 浮点数就像一堆沙,每动一次就会失去一点"沙", 并拣回一点"脏" 34 | * 如何才能使失去的"沙"和拣回的"脏"尽量少呢 35 | > 在后面添加附加位 可是多少位附加位合适呢? 36 | > > 无法确定 37 | > IEEE 754规定:中间结果需要在后面添加2个附加位 38 | > > - 保护位 39 | > > - 舍入位 40 | 41 | #### 舍入位 42 | * IEEE的四种舍入方式 43 | > - 就近舍入 (默认) 精度最高 44 | > - 向整无穷舍入 45 | > - 向负无穷舍入 46 | > - 向0舍入 47 | 48 | > 就近舍入的方式 49 | > - 舍入位<1/2 截断丢弃 50 | > - 舍入位>1/2 末位加1 51 | > - 舍入位=1/2 取最近的偶数 52 | 53 | ### C语言中的浮点数类型 54 | * C语言中有float和double类型,分别对应IEEE 754中的单精度和双精度浮点数格式,与具体的高级语言无关 55 | * long double类型的长度和格式随编译器和处理器的不同而不同 56 | * 从int到float的转换不会发生溢出,但可能会有数据被舍入 57 | > 因为float类型表示的数的范围比int的大,但是int的数据位是31位表示,float的尾数部分是23+1位表示 58 | 59 | * 从int或float到double的转换,能够保留精确值,double的尾数位是52+1位表示 60 | * 从double到int或float的转换,可能发生溢出,此外,由于有效位数变少,故可能被舍入 61 | * 从float或double到int的转换,因为int没有小数部分,所以数据可能会向0方向被截断 62 | 63 | #### 浮点数的结合律不正确 64 | -------------------------------------------------------------------------------- /week5/README.md: -------------------------------------------------------------------------------- 1 | # 第五周 2 | ## IA-32指令系统概述 3 | -------------------------------------------------------------------------------- /week5/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson1/1.png -------------------------------------------------------------------------------- /week5/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson1/2.png -------------------------------------------------------------------------------- /week5/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 计算机是如何工作的 3 | > 程序是由指令组成 4 | * 程序在执行前 5 | > 数据和指令事先放在存储器中,每条指令和数据都有地址,指令按顺序存放,指令由OP和ADDR字段组成,程序起始地址置PC 6 | 7 | * 开始执行程序 8 | > - 根据PC取指令 9 | > - 指令译码 10 | > - 取操作数 11 | > - 指令执行 12 | > - 回写结果 13 | > - 修改PC值,继续执行下一条指令 14 | 15 | * 指令和数据 16 | > - 程序启动前,指令和数据都存储在存储器中,形式上没有差别,都是0和1的序列 17 | > - 采用"存储程序"的工作方式 18 | > > 程序由指令组成,程序被启动后,计算机能自动取出一条一条的指令自动执行,在执行的过程中无需人的干预 19 | > 指令在执行过程中,指令和数据被从存储器取到CPU,存放在CPU中的寄存器中,指令存放在IR中,数据存放在GPR中 20 | 21 | * 指令需要给出的信息 22 | > - 操作性质 (操作码) 23 | > - 源操作数1和源操作数2 (立即数 寄存器编号 存储地址) 24 | > - 目的操作数 (寄存器编号 存储地址) 25 | 存储地址的描述和操作数的数据结构有关 26 | 27 | ### 指令的概念 28 | * 计算机中的指令有**机器指令**,**微指令**和**伪(宏)指令**之分 29 | * 机器指令处于硬件和软件的交接面 30 | > 相当于一个菜谱做菜的完整过程 31 | 32 | * 微指令是微程序级指令,属于硬件范畴 33 | > 相当于洗切煮炒等做菜的微过程 34 | 35 | * 伪指令是由若干条机器指令组成的指令序列,属于软件范畴 36 | * 汇编指令是机器指令的汇编表示形式,即符号表示 37 | * 机器指令和汇编指令一一对应,它们都与具体的机器结构有关,都属于机器级指令 38 | 39 | #### 机器级指令 40 | * 机器指令和汇编指令都是机器级指令 41 | * 机器指令是一个0和1的序列,由若干字段组成 42 | * 汇编指令是机器指令的符号表示,有不同的格式 43 | > - Inter格式 44 | > - AT&T 格式 45 | 46 | #### ISA是计算机系统中一种必不可少的一个抽象层 47 | > - 没有它,软件无法使用计算机硬件 48 | > - 没有它,一台计算机无法成为"通用计算机" 49 | 50 | #### ISA和计算机组成(微体系)之间的关系 51 | > 不同的ISA规定的指令集不同 比如IA-32 MIPS ARM 52 | > 计算机组成必须能够实现ISA规定的功能 比如提供GPR 标志 运算电路 53 | > 同一种ISA可以有不同的计算机组成 比如乘法指令可以用ALU和乘法器实现 54 | ISA是计算机组成的一种抽象 55 | 56 | ##### ISA规定一台机器的指令系统所涉及的所有方面 57 | > - 所有指令的指令格式和功能 58 | > - 通用寄存器的个数,位数,编号和功能 59 | > - 存储地址空间的大小,编址方式,大小端 60 | > - 指令寻址方式 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /week5/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/1.png -------------------------------------------------------------------------------- /week5/lesson2/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/10.png -------------------------------------------------------------------------------- /week5/lesson2/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/11.png -------------------------------------------------------------------------------- /week5/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/2.png -------------------------------------------------------------------------------- /week5/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/3.png -------------------------------------------------------------------------------- /week5/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/4.png -------------------------------------------------------------------------------- /week5/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/5.png -------------------------------------------------------------------------------- /week5/lesson2/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/6.png -------------------------------------------------------------------------------- /week5/lesson2/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/7.png -------------------------------------------------------------------------------- /week5/lesson2/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/8.png -------------------------------------------------------------------------------- /week5/lesson2/9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/9-1.png -------------------------------------------------------------------------------- /week5/lesson2/9-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week5/lesson2/9-2.png -------------------------------------------------------------------------------- /week5/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## IA-32体系结构 3 | > 8个GPR(0-7) 一个EFLAGs PC为EIP 可寻址空间4GB(0-0xFFFFFFFF) 4 | > 指令格式变长 操作码变长 指令由若干字段组成 5 | 6 | ### 计算机中的数据存放 7 | > - 通用寄存器 8 | > - 存储器 9 | 10 | 11 | -------------------------------------------------------------------------------- /week6/README.md: -------------------------------------------------------------------------------- 1 | # 第六周 2 | ## IA-32指令系统 3 | -------------------------------------------------------------------------------- /week6/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson1/1.png -------------------------------------------------------------------------------- /week6/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson1/2.png -------------------------------------------------------------------------------- /week6/lesson1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson1/3.png -------------------------------------------------------------------------------- /week6/lesson1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson1/4.png -------------------------------------------------------------------------------- /week6/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 传送指令 3 | 4 | -------------------------------------------------------------------------------- /week6/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/1.png -------------------------------------------------------------------------------- /week6/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/2.png -------------------------------------------------------------------------------- /week6/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/3.png -------------------------------------------------------------------------------- /week6/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/4.png -------------------------------------------------------------------------------- /week6/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/5.png -------------------------------------------------------------------------------- /week6/lesson2/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/6.png -------------------------------------------------------------------------------- /week6/lesson2/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/7.png -------------------------------------------------------------------------------- /week6/lesson2/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/8.png -------------------------------------------------------------------------------- /week6/lesson2/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson2/9.png -------------------------------------------------------------------------------- /week6/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 定点算数运算指令 3 | -------------------------------------------------------------------------------- /week6/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson3/1.png -------------------------------------------------------------------------------- /week6/lesson3/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson3/2.png -------------------------------------------------------------------------------- /week6/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## 按位运算指令 3 | -------------------------------------------------------------------------------- /week6/lesson4/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson4/1.png -------------------------------------------------------------------------------- /week6/lesson4/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson4/2.png -------------------------------------------------------------------------------- /week6/lesson4/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson4/3.png -------------------------------------------------------------------------------- /week6/lesson4/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson4/4.png -------------------------------------------------------------------------------- /week6/lesson4/README.md: -------------------------------------------------------------------------------- 1 | # 第四讲 2 | ## 控制转移指令 3 | -------------------------------------------------------------------------------- /week6/lesson5/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/1.png -------------------------------------------------------------------------------- /week6/lesson5/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/2.png -------------------------------------------------------------------------------- /week6/lesson5/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/3.png -------------------------------------------------------------------------------- /week6/lesson5/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/4.png -------------------------------------------------------------------------------- /week6/lesson5/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/5.png -------------------------------------------------------------------------------- /week6/lesson5/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/6.png -------------------------------------------------------------------------------- /week6/lesson5/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/7.png -------------------------------------------------------------------------------- /week6/lesson5/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/8.png -------------------------------------------------------------------------------- /week6/lesson5/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson5/9.png -------------------------------------------------------------------------------- /week6/lesson5/README.md: -------------------------------------------------------------------------------- 1 | # 第五讲 2 | ## x87浮点处理指令 3 | -------------------------------------------------------------------------------- /week6/lesson6/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson6/1.png -------------------------------------------------------------------------------- /week6/lesson6/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson6/2.png -------------------------------------------------------------------------------- /week6/lesson6/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week6/lesson6/3.png -------------------------------------------------------------------------------- /week6/lesson6/README.md: -------------------------------------------------------------------------------- 1 | # 第六讲 2 | ## MMX及SSE指令集 3 | 4 | -------------------------------------------------------------------------------- /week7/README.md: -------------------------------------------------------------------------------- 1 | # 第七周 2 | ## C语言语句的机器级表示 3 | -------------------------------------------------------------------------------- /week7/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/1.png -------------------------------------------------------------------------------- /week7/lesson1/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/10.png -------------------------------------------------------------------------------- /week7/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/2.png -------------------------------------------------------------------------------- /week7/lesson1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/3.png -------------------------------------------------------------------------------- /week7/lesson1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/4.png -------------------------------------------------------------------------------- /week7/lesson1/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/5.png -------------------------------------------------------------------------------- /week7/lesson1/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/6.png -------------------------------------------------------------------------------- /week7/lesson1/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/7.png -------------------------------------------------------------------------------- /week7/lesson1/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/8.png -------------------------------------------------------------------------------- /week7/lesson1/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson1/9.png -------------------------------------------------------------------------------- /week7/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 过程调用的机器级表示 3 | ### 4 | -------------------------------------------------------------------------------- /week7/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson2/1.png -------------------------------------------------------------------------------- /week7/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson2/2.png -------------------------------------------------------------------------------- /week7/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson2/3.png -------------------------------------------------------------------------------- /week7/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson2/4.png -------------------------------------------------------------------------------- /week7/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson2/5.png -------------------------------------------------------------------------------- /week7/lesson2/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week7/lesson2/6.png -------------------------------------------------------------------------------- /week7/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 选择和循环语句的机器级表示 3 | 4 | -------------------------------------------------------------------------------- /week8/README.md: -------------------------------------------------------------------------------- 1 | # 第八周 2 | ## 复杂数据类型的机器级表示 3 | -------------------------------------------------------------------------------- /week8/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson1/1.png -------------------------------------------------------------------------------- /week8/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson1/2.png -------------------------------------------------------------------------------- /week8/lesson1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson1/3.png -------------------------------------------------------------------------------- /week8/lesson1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson1/4.png -------------------------------------------------------------------------------- /week8/lesson1/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson1/5.png -------------------------------------------------------------------------------- /week8/lesson1/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson1/6.png -------------------------------------------------------------------------------- /week8/lesson1/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson1/7.png -------------------------------------------------------------------------------- /week8/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## 数组和指针类型的分配与访问 3 | -------------------------------------------------------------------------------- /week8/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/1.png -------------------------------------------------------------------------------- /week8/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/2.png -------------------------------------------------------------------------------- /week8/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/3.png -------------------------------------------------------------------------------- /week8/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/4.png -------------------------------------------------------------------------------- /week8/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/5.png -------------------------------------------------------------------------------- /week8/lesson2/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/6.png -------------------------------------------------------------------------------- /week8/lesson2/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/7.png -------------------------------------------------------------------------------- /week8/lesson2/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson2/8.png -------------------------------------------------------------------------------- /week8/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## 结构和联合数据类型的分配和访问 3 | 4 | -------------------------------------------------------------------------------- /week8/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson3/1.png -------------------------------------------------------------------------------- /week8/lesson3/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson3/2.png -------------------------------------------------------------------------------- /week8/lesson3/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson3/3.png -------------------------------------------------------------------------------- /week8/lesson3/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson3/4.png -------------------------------------------------------------------------------- /week8/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## 数据的对齐存放 3 | 4 | 5 | -------------------------------------------------------------------------------- /week8/lesson3/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | struct s 4 | { 5 | int i; 6 | short s; 7 | char c; 8 | double d; 9 | 10 | }; 11 | 12 | struct ss 13 | { 14 | int i; 15 | short s; 16 | double d; 17 | char c; 18 | 19 | }; 20 | 21 | int main (void) 22 | { 23 | struct s ss; 24 | struct ss sss; 25 | std::cout << sizeof (ss) << std::endl; 26 | std::cout << sizeof (sss) << std::endl; 27 | 28 | return 0; 29 | } 30 | -------------------------------------------------------------------------------- /week8/lesson4/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson4/1.png -------------------------------------------------------------------------------- /week8/lesson4/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson4/2.png -------------------------------------------------------------------------------- /week8/lesson4/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson4/3.png -------------------------------------------------------------------------------- /week8/lesson4/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson4/4.png -------------------------------------------------------------------------------- /week8/lesson4/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson4/5.png -------------------------------------------------------------------------------- /week8/lesson4/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week8/lesson4/6.png -------------------------------------------------------------------------------- /week8/lesson4/README.md: -------------------------------------------------------------------------------- 1 | # 第四讲 2 | ## 越界访问和缓冲区溢出攻击 3 | -------------------------------------------------------------------------------- /week9/README.md: -------------------------------------------------------------------------------- 1 | # 第九周 2 | ## X86-64指令系统 3 | -------------------------------------------------------------------------------- /week9/lesson1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson1/1.png -------------------------------------------------------------------------------- /week9/lesson1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson1/2.png -------------------------------------------------------------------------------- /week9/lesson1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson1/3.png -------------------------------------------------------------------------------- /week9/lesson1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson1/4.png -------------------------------------------------------------------------------- /week9/lesson1/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson1/5.png -------------------------------------------------------------------------------- /week9/lesson1/README.md: -------------------------------------------------------------------------------- 1 | # 第一讲 2 | ## X86-64指令系统概述 3 | -------------------------------------------------------------------------------- /week9/lesson2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/1.png -------------------------------------------------------------------------------- /week9/lesson2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/2.png -------------------------------------------------------------------------------- /week9/lesson2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/3.png -------------------------------------------------------------------------------- /week9/lesson2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/4.png -------------------------------------------------------------------------------- /week9/lesson2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/5.png -------------------------------------------------------------------------------- /week9/lesson2/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/6.png -------------------------------------------------------------------------------- /week9/lesson2/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/7.png -------------------------------------------------------------------------------- /week9/lesson2/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson2/8.png -------------------------------------------------------------------------------- /week9/lesson2/README.md: -------------------------------------------------------------------------------- 1 | # 第二讲 2 | ## X86-64的基本指令 3 | -------------------------------------------------------------------------------- /week9/lesson3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/1.png -------------------------------------------------------------------------------- /week9/lesson3/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/10.png -------------------------------------------------------------------------------- /week9/lesson3/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/2.png -------------------------------------------------------------------------------- /week9/lesson3/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/3.png -------------------------------------------------------------------------------- /week9/lesson3/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/4.png -------------------------------------------------------------------------------- /week9/lesson3/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/5.png -------------------------------------------------------------------------------- /week9/lesson3/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/6.png -------------------------------------------------------------------------------- /week9/lesson3/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/7.png -------------------------------------------------------------------------------- /week9/lesson3/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/8.png -------------------------------------------------------------------------------- /week9/lesson3/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuxinyu123/cs_basis/e018b85974d42fa25a2fedf8d31a58d7377a2b08/week9/lesson3/9.png -------------------------------------------------------------------------------- /week9/lesson3/README.md: -------------------------------------------------------------------------------- 1 | # 第三讲 2 | ## X86-64过程调用 3 | --------------------------------------------------------------------------------