有谁真正的理解过一个编译器呢?许多人认为 TC 很简单很落后,但是即便是这样简单的工具,到底有几个人真正的深入理解了呢?一个简单的编译器都不能理解,如何能成为高手,如何能深入的使用更加高级的工具呢?不要以为自己使用的是VC就很了不起,因为使用这样傻瓜化的工具只能让你看不到事物的本质。接下来我们就来深入的认识Turbo C编译器。
广义的编译器,包括了代码编译器(compiler),目标文件链接器(linker),库文件管理工具(如tc的tlib,gcc的ar),编译驱动工具(如VC的NMake,gcc的make),ANSI c/c++标准的文件和库文件,扩展的头文件和库文件,集...
[2010-07-12 09:44] 【转】深入认识TC编译器
[2009-06-21 15:36] 第3章笔记
第三章 寄存器(内存访问)
P57 CPU中用16位寄存器存1个字.高8位存放高位字节,低8位存放低位字节.在内存中时,由于内存单元是字节单元,刚一个字要用2个地址连续的内存单元来存放,字的低位字节存在低地址单元.
以后课程中,我们将超始地址为N的字单元简称为N地址字单元
P59 MOV 寄存器名,内存单元地址 :如 MOV AL,[0]
[..]表示一个内存单元,[..]中的0表示内存单元的偏移霸. CPU自动取DS中的数据为内存单元的段地址.CPU不支持将数据直接送入段寄存器
P59 字的传送 只要在MOV指令中给出16位寄存器就可以进行16位数据传送了....
P57 CPU中用16位寄存器存1个字.高8位存放高位字节,低8位存放低位字节.在内存中时,由于内存单元是字节单元,刚一个字要用2个地址连续的内存单元来存放,字的低位字节存在低地址单元.
以后课程中,我们将超始地址为N的字单元简称为N地址字单元
P59 MOV 寄存器名,内存单元地址 :如 MOV AL,[0]
[..]表示一个内存单元,[..]中的0表示内存单元的偏移霸. CPU自动取DS中的数据为内存单元的段地址.CPU不支持将数据直接送入段寄存器
P59 字的传送 只要在MOV指令中给出16位寄存器就可以进行16位数据传送了....
阅读全文 |
作者:zdpopup |
评论次数(0) |
浏览次数(692)
[2009-06-20 00:44] 第2章笔记
第二章 寄存器
所有寄存器都是16位的,可以存放2个字节
AX BX CX DX 用来存放一般性数据称为通用寄存器
al 加法进位后的值不会保存在 ah中, ax 运算时低8位才会进位
10进制换成 16进制 十位 是16 百位是 16*16 4位是 16*16*16 按最大的除,整数就是值,余数在减位除
16位的的寻址能力是64KB. 1个4位是1个16进制位.一个段是4个16进,即4个4位即16位所有COM最大只有64KB
P31 8086CPU读写内存时
(1) CPU 提供2个16位地址:段地址和偏移地址
(2)段地址和偏移地址通过内部总线送入地址加法...
所有寄存器都是16位的,可以存放2个字节
AX BX CX DX 用来存放一般性数据称为通用寄存器
al 加法进位后的值不会保存在 ah中, ax 运算时低8位才会进位
10进制换成 16进制 十位 是16 百位是 16*16 4位是 16*16*16 按最大的除,整数就是值,余数在减位除
16位的的寻址能力是64KB. 1个4位是1个16进制位.一个段是4个16进,即4个4位即16位所有COM最大只有64KB
P31 8086CPU读写内存时
(1) CPU 提供2个16位地址:段地址和偏移地址
(2)段地址和偏移地址通过内部总线送入地址加法...
阅读全文 |
作者:zdpopup |
评论次数(0) |
浏览次数(394)
[2009-06-19 22:40] 第1章笔记
第一章 基础知识
P13 :汇编由3类指令构成:
1\汇编指令 机器码的助记符有对应的机器码
2\伪指令 没有对应码,由编译器执行,计算机不执行
3其它符号:如+ - * /,由编译器识别,没有对应机器码
P14 :最小单位是bit比特,8个bit组成一个字节byte,即8个二进制位.一个字节就是一个存储单元
1KB=1024B 1M=1024KB 1G=1024M 1TB=1024G
P15:总线:连结CPU与其它芯片(外部器件)的导线.总线物理上说导线的总和
总线从逻辑上分为:3类 地址总线 控制总线 数据总线
地址总线: 一根导线能传送稳定状态只有2种,高电平...
P13 :汇编由3类指令构成:
1\汇编指令 机器码的助记符有对应的机器码
2\伪指令 没有对应码,由编译器执行,计算机不执行
3其它符号:如+ - * /,由编译器识别,没有对应机器码
P14 :最小单位是bit比特,8个bit组成一个字节byte,即8个二进制位.一个字节就是一个存储单元
1KB=1024B 1M=1024KB 1G=1024M 1TB=1024G
P15:总线:连结CPU与其它芯片(外部器件)的导线.总线物理上说导线的总和
总线从逻辑上分为:3类 地址总线 控制总线 数据总线
地址总线: 一根导线能传送稳定状态只有2种,高电平...
阅读全文 |
作者:zdpopup |
评论次数(0) |
浏览次数(302)
[2009-07-28 18:00] 我自己写的双启动详细实现(代码+注解)
A)=========安装双系统:(用Virtual PC)============
步骤:
1先装1个系统
2 把D盘转为主(PQ中设),同时把这个设为主(我是在FDSIK下设的D为A主,在DOS下显示时C:就是显的原来D盘了)
3 安装第2个系统
4 运行自己写的代码
B)============代码写的步骤============
1,先把原系统中MBR,复制到不用扇区
2,再写在写MBR时(注意后4个字节.)选择并跳出 0:7C00送行.好在选择完成后重载原来MBR
3,对于重载的原来MBR 对要启的分区表 头设80H,其它设0.一份在1BE ...
步骤:
1先装1个系统
2 把D盘转为主(PQ中设),同时把这个设为主(我是在FDSIK下设的D为A主,在DOS下显示时C:就是显的原来D盘了)
3 安装第2个系统
4 运行自己写的代码
B)============代码写的步骤============
1,先把原系统中MBR,复制到不用扇区
2,再写在写MBR时(注意后4个字节.)选择并跳出 0:7C00送行.好在选择完成后重载原来MBR
3,对于重载的原来MBR 对要启的分区表 头设80H,其它设0.一份在1BE ...
阅读全文 |
作者:zdpopup |
评论次数(18) |
浏览次数(5640)
[2011-04-17 16:24] 第三章 寄存器(内存访问)
检测点3.1
(1)
2662H
E626H
E626H
2662H
D6E6H
FD48H
2C14H
0000H
00E6H
0000H
0026H
000CH
(2)
指令序列 CS IP DS AX BX
mov ax,6622H 2000H 0003H 1000H 6622H 0000H
jmp 0ff0:0100 0ff0H 0100H 1000H 6622H 0000H
mov ax,2000H 0ff0H 0103H 1...
(1)
2662H
E626H
E626H
2662H
D6E6H
FD48H
2C14H
0000H
00E6H
0000H
0026H
000CH
(2)
指令序列 CS IP DS AX BX
mov ax,6622H 2000H 0003H 1000H 6622H 0000H
jmp 0ff0:0100 0ff0H 0100H 1000H 6622H 0000H
mov ax,2000H 0ff0H 0103H 1...
阅读全文 |
作者:mhlearn |
评论次数(0) |
浏览次数(179)
[2011-04-17 16:11] 第二章 寄存器
检测点2.1
(1)
F4A3H
31A3H
3123H
6246H
826CH
6246H
826CH
04D8H
0482H
6C82H
D882H
D888H
D810H
6246H
(2)
mov ax,2H
add ax,ax
add ax,ax
add ax,ax
检测点2.2
(1)00010H 1000FH
(2)2000H 1001H...
(1)
F4A3H
31A3H
3123H
6246H
826CH
6246H
826CH
04D8H
0482H
6C82H
D882H
D888H
D810H
6246H
(2)
mov ax,2H
add ax,ax
add ax,ax
add ax,ax
检测点2.2
(1)00010H 1000FH
(2)2000H 1001H...
阅读全文 |
作者:mhlearn |
评论次数(0) |
浏览次数(195)
[2011-04-17 16:02] 第一章 基础知识
检测点1.1
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。
(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。
(3)1KB的存储器可以存储2^13个bit,1024个Byte。
(4)1GB是2^30个Byte、1MB是2^20个Byte、1KB是2^10个Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16 MB、4(GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、1...
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。
(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。
(3)1KB的存储器可以存储2^13个bit,1024个Byte。
(4)1GB是2^30个Byte、1MB是2^20个Byte、1KB是2^10个Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16 MB、4(GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、1...
阅读全文 |
作者:mhlearn |
评论次数(0) |
浏览次数(210)
页码数(1):
1