汇编语言第1-2章基础知识.ppt
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(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 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-121=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)、异或(XOR),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.3本章小结数制之间的转换有符号数、无符号数和字符表示,第2章 80X86计算机组织(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)用户软件 系统软件-操作系统操作系统中的常驻监督程序:文件管理程序 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.段寄存器(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)专用寄存器(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)有以下3个:DF:方向标志(direction flag)IF:中断标志(interrupt flag)TF:跟踪标志(trap flag)见P24页表2.2,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(1234H)=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功能调用,