《汇编语言第1-2章 基础知识》由会员分享,可在线阅读,更多相关《汇编语言第1-2章 基础知识(27页珍藏版)》请在金锄头文库上搜索。
1、IBM-PC汇编语言程序设计第1章 基础知识(Basic computer)简介(Preface): 机器语言(Machine Language) 汇编语言(Assembly Language) 高级语言(High _ level Language)1.1 数的表示(Data representation)数的表示: an an-1 a0. b1 b2 . b m anrn+an-1rn-1+a0r0+b1r -1+b m r -m 其中, r - 基数 r k -权 例如: r-10 (Decimal)an10n+an-110n-1+a0100+b110 -1+b m 10 -m r-2 (
2、Binary) an2n+an-12n-1+a020+b12 -1+b m 2 -m r-8 (Octal) r-16 (Hexadecimal)汇编程序中数的表示: 例如,10B 10D 10H 数制之间的转换 1. 二进制十进制(converting Binary to Decimal): an an-1 a0. b1 b2 . b m =an2n+an-12n-1+a020+b12 -1+b m 2m 2. 十进制二进制( converting Decimal to Binary ): 方法一:除法 方法二:降幂法 例如:13D 23=8,22=4,21=2,20=1 13-8=5 1
3、5-4=1 1 1-2 0 1-1=0 1 13D=1101B 3. 十六进制十进制(converting Hexadecimal to Decimal): an an-1 a0. b1 b2 . b m =an16n+an-116n-1+a0160+b116 -1+b m 16m 4. 十进制十六进制( converting Decimal to Hexadecimal ): 方法一:除法 方法二:降幂法 例如: 48956D 163=4096,162=256,161=16,160=1 48956-114096=3900 B 3900-15256=60 F 60-316=12 3 12-12
4、1=0 C 48956D=BF3CH 5.二进制十六进制(converting Binary to Hexadecimal): 6. 十六进制二进制( converting Hexadecimal to Binary ):1.2 数的计算(Calculation of digits)二进制加法 (Binary addition)二进制乘法 (Binary multiple)十六进制加法 (Hexadecimal addition)十六进制乘法 (Hexadecimal multiple)几种基本逻辑运算(Boolean Operations) 与(AND)、或(OR)、非(NOT)、 异或(X
5、OR)1.3 计算机中数和字符的表示(Data and ASCII strings representation)数据 1.无符号数 (Unsigned Integer) 0N2k-1 例如,8位二进制数:0255 16位二进制数:065535 2. 有符号数(Signed Integers)-补码 -2k-1 N2k-1-1 例如,8位二进制数:-128127 16位二进制数:-3276832767 3. 补码的特点 求补 求补 X补 -X补 X补 X+Y补= X补 + Y补 X-Y补= X补 + -Y补字符表示法 - ASCII码 ASCII码表见P11 表本章小结1.数制之间的转换2.有
6、符号数、无符号数和字符表示 第2章 80X86计算机组织(Component of 80X86)2.1 80X86微处理器 基于微处理器的计算机系统构成(Component of Microcomputer with microprocessor)硬件(Hardware) 寄存器组(register) CPU 控制器(control unit) 运算器 (arithmetic logic unit):逻辑运算和算术运算 存储单元(Memory storage unit)- 内存 I/O系统(I/O system):I/O设备,大容量的外存 数据总线 总线 地址总线 控制总线 软件(Softwa
7、re) 用户软件 系统软件-操作系统操作系统中的常驻监督程序: 文件管理程序 I/O驱动程序 调试程序 - debug 文本编辑程序 - edit 翻译程序 - masm 连接程序 - link 装入程序 系统程序库 2.3 中央处理机(CPU)CPU的组成80X86寄存器组通用寄存器(General-Purpose Registers)数据寄存器(Data Registers): AX BX CX DX - 16位AH AL BH BL CH CL DH DL - 8位 AX:累加器AC (Accumulator Register) BX:基址寄存器(Base Register) CX:计数
8、器 (Counter Register) DX:与AX同 2. 段寄存器(Segment Registers) CS SS DS ES - 16位 CS 代码段(code) DS 数据段(data) ES 附加段(extra) SS 堆栈段(stack) 3. 指针及变址寄存器(Pointer and Index Registers) SP BP SI DI - 16位 SP:堆栈指针寄存器(stack pointer register) BP:基址指针寄存器(base pointer register) SI :源变址寄存器 (source index register) DI :目的变址寄
9、存器(destination index register) 专用寄存器(Specialized Uses Registers) 1. 指令指针寄存器(Instruction Pointer) IP - 16位 2. 标志寄存器(Flags)-16位 状态标志位(status flags)有以下6个: CF:进位标志(carry flag) SF:符号标志(sign flag) OF:溢出标志(overflow flag) ZF:零标志(zero flag) AF:辅助进位标志(auxiliary flag) PF:奇偶标志(parity flag) 控制标志位(control flags)有
10、以下3个: DF:方向标志(direction flag) IF :中断标志(interrupt flag) TF: 跟踪标志(trap flag) 见P24页表2.4 存储器(Memory subsystem)存储单元的地址和内容 1. 地址:位、字节、字、双字 16位地址空间:216,即64k 范围:065535 ,即0000H0FFFFH 特点:地址必须唯一 2. 存储单元内容与地址的关系表示 0000H 34H 0001H 12H 0002H 7CH 0003H 1234H 25H 1235H F8H FFFFH 字节: (0000H)=34H 字: (0000H)=1234H (12
11、34H)=0F825H 即: (0000H)=0F825H实模式内存 地址总线:20位 内存空间为:220=1M 问题:20位地址与16位机器字长的矛盾如何解决? 地址范围:000000FFFFFH 00000H, 00001H, 00002H,.,0000FH 00010H, 00011H, 00012H,.,0001FH 00020H, 00021H, 00022H,.,0002FH . FFFE0H,FFFE1H,FFFE2H,FFFEFH FFFF0H,FFFF1H,FFFF2H,.,FFFFFH 解决方案:分段 物理地址=段首地址(16位)16+偏移地址(16位) *段允许重叠,但不允许覆盖2.5 外部设备接口 接口上的寄存器组分类: 数据寄存器 状态寄存器 命令寄存器 端口地址:0000FFFFH DOS功能调用BIOS功能调用