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 manrn+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 -mr-2 (
2、Binary)an2n+an-12n-1+a020+b12 -1+b m 2 -mr-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 2m2. 十进制二进制( converting Decimal to Binary ):方法一:除法方法二:降幂法,例如:13D23=8,22=4,21=2,20=113-8=5 1 5-4=1 11-
3、2 01-1=0 113D=1101B,3. 十六进制十进制(converting Hexadecimal to Decimal):an an-1 a0. b1 b2 . b m=an16n+an-116n-1+a0160+b116 -1+b m 16m4. 十进制十六进制( converting Decimal to Hexadecimal ):方法一:除法方法二:降幂法,例如: 48956D163=4096,162=256,161=16,160=148956-114096=3900 B3900-15256=60 F60-316=12 312-121=0 C48956D=BF3CH,5.二进
4、制十六进制(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)、 异或(XOR),1.3 计算机中数和字符的表
5、示 (Data and ASCII strings representation),数据1.无符号数 (Unsigned Integer)0N2k-1例如,8位二进制数:025516位二进制数:065535,2. 有符号数(Signed Integers)-补码-2k-1 N2k-1-1例如,8位二进制数:-12812716位二进制数:-32768327673. 补码的特点求补 求补X补 -X补 X补 X+Y补= X补 + Y补 X-Y补= X补 + -Y补,字符表示法 - ASCII码 ASCII码表见P11 表1.3 本章小结 数制之间的转换 有符号数、无符号数和字符表示,第2章 80X8
6、6计算机组织 (Component of 80X86),2.1 80X86微处理器,2.2 基于微处理器的计算机系统构成 (Component of Microcomputer with microprocessor),硬件(Hardware)寄存器组(register)CPU 控制器(control unit)运算器 (arithmetic logic unit):逻辑运算和算术运算存储单元(Memory storage unit)- 内存I/O系统(I/O system):I/O设备,大容量的外存数据总线总线 地址总线控制总线,软件(Software)用户软件系统软件-操作系统 操作系统中
7、的常驻监督程序:文件管理程序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:计数器 (Counter Register)DX:与AX同2.
8、 段寄存器(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 :目的变址寄存器(destination index register)专用寄存器(Speciali
9、zed 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)有以下3个:DF:方向标志(direction flag)IF :中断标志(interrupt flag)TF:
10、 跟踪标志(trap flag) 见P24页表2.2,2.4 存储器 (Memory subsystem),存储单元的地址和内容1. 地址:位、字节、字、双字16位地址空间:216,即64k范围:065535 ,即0000H0FFFFH特点:地址必须唯一2. 存储单元内容与地址的关系表示,0000H 34H0001H 12H0002H 7CH0003H1234H 25H1235H F8HFFFFH 字节: (0000H)=34H字: (0000H)=1234H(1234H)=0F825H即: (0000H)=0F825H,实模式内存地址总线:20位 内存空间为:220=1M问题:20位地址与16位机器字长的矛盾如何解决?地址范围:000000FFFFFH00000H, 00001H, 00002H,.,0000FH00010H, 00011H, 00012H,.,0001FH00020H, 00021H, 00022H,.,0002FHFFFE0H,FFFE1H,FFFE2H,FFFEFHFFFF0H,FFFF1H,FFFF2H,.,FFFFFH,解决方案:分段物理地址=段首地址(16位)16+偏移地址(16位)*段允许重叠,但不允许覆盖,2.5 外部设备,接口接口上的寄存器组分类:数据寄存器状态寄存器命令寄存器端口地址:0000FFFFH,DOS功能调用 BIOS功能调用,