h汇编基础知识
- 格式:doc
- 大小:28.00 KB
- 文档页数:1
1. 知识点:0202(基于微处理器的计算机系统构成) 在下列的选项中,能够组成计算机系统的是(A)。
选项A)硬件系统和软件系统选项B)CPU、存储器、输入/输出设备选项C)操作系统、各种语言选项D)系统软件和应用软件2. 知识点:01 (基础知识)汇编语言属于( B)选项A)用户软件选项B)系统软件选项C)高级语言×选项D)机器语言×5知识点:0203(中央处理机)中央处理器CPU是由(D)组成的选项A)运算器选项B)控制器选项C)寄存器组选项D)前三者答案:D6. 知识点:0201(80x86微处理器)IBM PC机的DOS是属于(B )。
选项A)用户软件选项B)系统软件选项C)系统硬件选项D)一种语言8. 知识点:0203(中央处理机)8086/8088 CPU的寄存器组中,8位的寄存器共有(C )个选项A)4选项B)6选项C)8选项D)109. 知识点:0203(中央处理机)8086/8088 CPU的寄存器组中,16位的寄存器共有()个。
选项A)10选项B)12选项C)13选项D)1410. 知识点:0204(存储器)8086/8088 CPU执行算术运算时PSW共有()个标志位会受影响。
选项A)4选项B)5选项C)6 SF,ZF,CF,OF,PF.AF选项D)711. 知识点:0204(存储器)在程序执行过程中,IP寄存器始终保存的是()。
选项A)上一条指令的首地址选项B)本条指令的首地址选项C)下一条指令的首地址选项D)需计算有效地址后才能确定地址12. 知识点:0204(存储器)IBM PC机的存储器可分()个段。
选项A)4选项B)256选项C)512选项D)6553613知识点:0204(存储器)当使用BP作编程地址时,此时使用的是()段。
选项A)CS选项B)DS选项C)ES选项D)SS17知识点:0204(存储器)存储器的一个字节表示()位。
选项A)8选项B)16选项C)32选项D)6418知识点:0101(基于微处理器的计算机系统构成)如果某个字变量的数据存放在奇地址单元,则8086/8088 CPU读写该变量时需要()个读写周期。
汇编语法大全汇编语言是一种底层的计算机语言,可以用来编写应用程序、驱动程序和嵌入式系统等。
其语法简洁、效率高,但也较为复杂。
下面是汇编语法大全,希望对大家能有所帮助。
1. 注释语句注释语句是程序员为了方便自己和他人阅读代码而添加的语句。
汇编语言中,使用分号(;)表示注释语句,写在行尾。
示例:mov ax, bx ;将bx寄存器的值赋给ax寄存器2. 标号语句标号语句用来表示程序中的一个位置,在汇编程序中可以用它来实现跳转、条件执行等功能。
标号语句必须在第一行,以字母开头,由数字、字母和下划线组成,长度不超过32个字符。
3. 数据定义语句数据定义语句用来为变量、常量分配存储空间,可以为它们指定初值。
汇编语言中,数据定义语句有三种形式:db、dw、dd。
db:定义一个字节(8位)长度的数据,可以用来存储字符、布尔型变量等。
data1 db 'A' ;定义一个字符型变量,初值为'A'4. 操作数表示操作数即指令中被操作的对象,可以是通用寄存器、内存单元、立即数等。
汇编指令中,操作数的表示方法主要有以下几种:寄存器表示法:使用寄存器的名称表示操作数,如AL、AX、DX等。
立即数表示法:表示一个常量数值,用于参与运算或存储到内存中,如100、0AH等。
内存变量表示法:使用内存变量的地址表示操作数,如[2000H]、[BX]等。
mov al, 02h ;将立即数02h赋给AL寄存器mov byte ptr ds:[bx], al ;将AL寄存器的值存储到2000h地址所指向的内存单元中5. 寻址方式汇编语言中,寻址方式用于表示操作数在内存中的地址。
汇编语言提供了多种寻址方式,例如寄存器间接寻址、基址变址寻址、相对寻址等。
寄存器间接寻址寄存器间接寻址是指操作数的地址存储在一个寄存器中。
例如,[BX]表示将BX寄存器中的值作为地址,访问该地址存储的数据。
基址变址寻址相对寻址相对寻址是指让程序计算出偏移量以便于寻址,这种寻址方式用于程序中的跳转指令。
汇编语言学习笔记《汇编语言》--王爽前言学习汇编目的:充分获得底层编程体验;深刻理解机器运行程序的机理。
原则:没有通过监测点不要向下学习;没有完成当前实验不要向下学习。
第一章基础知识有三类指令组成汇编语言:汇编指令;伪指令;其他符号。
8bit = 1byte = 一个存储单元有n根地址线,则可以寻址2的n次方个内存单元。
1.1节--1.10节小结(1)汇编指令是机器指令的助记符,同机器指令一一对应。
(2)每一种cpu都有自己的汇编指令集。
(3)cpu可以直接使用的信息在存储器中存放。
(4)在存储器中指令和数据没有任何区别,都是二进制信息。
(5)存储单元从零开始顺序编号。
(6)一个存储单元可以存储8个bit,即八位二进制数。
(7)每一个cpu芯片都有许多管脚,这些管脚和总线相连。
也可以说,这些管脚引出总线。
一个cpu可以引出的三种总线的宽度标志了这个cpu不同方面的性能。
地址总线的宽度决定了cpu的寻址能力;数据总线的宽度决定了cpu与其他器件进行数据传送时的一次数据传送量;控制总线的宽度决定了cpu对系统中其他器件的控制能力。
监测点:1KB的存储器有1024个存储单元?存储单元的编号从0到1023.内存地址空间:最终运行程序的是cpu,我们用汇编编程时,必须要从cpu的角度思考问题。
对cpu来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受cpu寻址能力的限制。
这个逻辑存储器即是我们所说的内存地址空间。
第二章寄存器(cpu的工作原理)mov ax, 2add ax, axadd ax, axadd ax, ax(1)cpu中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;(2)段地址和偏移地址通过内部总线送人一个称为地址加法器的部件;(3)地址加法器将两个16位地址合成为一个20位的物理地址;(4)地址加法器通过内部总线将20位物理地址送人输入输出控制电路;(5)输入输出控制电路将20位物理地址送上地址总线;(6)20位物理地址被地址总线传送到存储器;段地址*16+偏移地址= 物理地址的本质含义内存并没有分段,段的划分来自cpu。
汇编语⾔考试复习资料汇编语⾔期末复习资料整理第⼆章1、寄存器组(1)通⽤寄存器数据寄存器EAX(32位) AX(16位) AH(8位)(⾼位) AL(8位)(低位)累加器EBX(32位) BX(16位) BH(8位)(⾼位) BL(8位)(低位)基址变址ECX(32位) CX(16位) CH(8位)(⾼位)CL(8位)(低位)计数器EDX(32位) DX(16位) DH(8位)(⾼位) DL(8位)(低位)数据指针或变址寄存器ESP(32位) SP(16位)堆栈指针寄存器EBP(32位) BP(16位)基址指针寄存器EDI(32位) DI(16位)⽬的变址寄存器ESI(32位) SI(16位)源变址寄存器(2)专⽤寄存器EIP(32位) IP(16位)指令指针寄存器EFLAGS(32位) FLAGS(16位)标志寄存器ESP (32位) SP(16位)堆栈指针寄存器2、标志位的符号表⽰、3、段寄存器CS(16位)代码段 DS(16位)数据段SS(16位)堆栈段 ES(16位)附加段4、段寄存器和相应存放偏移地址的寄存器之间的默认组合第三章1、七种寻址⽅式(举例)⽴即寻 MOV AX,3069H寄存器寻 MOV AL,BH在内存中的五种寻址直接寻 MOV AX,[2000H]寄存器间接寻 MOV AX,[BX]寄存器相对寻 MOV AX,COUNT[SI] 或者 MOV AX,[SI+COUNT](不推荐) 基址变址寻址 MOV AX,[BP][DI]相对基址变址寻址 MOV AX,MASK[BX][SI]2、指令系统I.数据传送指令(1)通⽤数据传送指令MOV 传送MOVSX 带符号扩展传送⽤源操作数的符号位来填充⽬的操作数的⾼位数据位。
例:MOVSX EAX,CL把CL寄存器中的8位数,符号扩展为32位数,送到EAX寄存器中。
MOVZX 带零扩展传送恒⽤0来填充⽬的操作数的⾼位数据位例:MOVZX DX,AL把AL寄存器中的8位数,零扩展成16位数,送到DX寄存器中。
汇编多文件编程-概述说明以及解释1.引言1.1 概述汇编多文件编程是一种在汇编语言中使用多个文件来编写程序的技术。
在传统的汇编程序中,所有的代码都是写在一个文件中的,当程序变得庞大时,这会导致代码的可读性和可维护性变得非常困难。
汇编多文件编程通过将不同功能的代码分开存放在不同的文件中,使得程序结构更清晰,代码逻辑更容易理解。
通过合理地划分文件,我们可以将不同的功能模块独立编写,便于单独测试和调试,提高了代码的复用性和可扩展性。
在汇编多文件编程中,我们通常将主程序和不同的功能模块分别写在不同的文件中。
这些文件可以包含代码、数据和常量等信息。
通过在主程序中调用其他文件中的函数和变量,我们可以实现不同文件之间的交互和数据共享。
汇编多文件编程还可以提高代码的模块化程度,降低了编写和维护程序的难度。
它使得团队合作开发更加便捷,每个成员可以独立地编写和测试自己负责的部分,最后再进行整合。
总之,汇编多文件编程是一种有效的编程技术,它能够提高程序的可读性、可维护性和可扩展性。
通过合理地划分和组织代码,我们可以更好地编写和管理复杂的汇编程序。
在本文中,我们将介绍汇编语言的基础知识,以及如何使用多文件进行汇编编程的概念和方法。
1.2 文章结构文章结构部分的内容可以包括以下内容:文章结构部分旨在介绍本文的整体组织架构,用以引导读者了解本篇长文的内容安排和逻辑结构。
本文主要分为引言、正文和结论三个部分。
引言部分对本文的主题进行概述,并介绍文章的背景和意义。
通过简要介绍汇编多文件编程的概念和应用领域,引发读者对该主题的兴趣,并提出本文的目的和研究问题。
正文部分是本文的核心内容,主要分为两个小节:汇编语言基础和多文件编程概念。
在汇编语言基础部分,将介绍汇编语言的定义、特点和基本语法,为读者建立起对汇编语言的基本认识。
在多文件编程概念部分,将详细探讨多文件编程的原理和应用,包括多文件编程的优势、实现方法和注意事项,以及多文件编程在实际项目开发中的应用案例。
知识点第一章基础知识(1)正负数的补码表示, 掌握计算机中数和字符的表示;eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。
十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。
8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。
第二章80x86计算机组织(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。
(2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。
存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。
eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。
已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。
如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H .第三章80x86的指令系统和寻址方式与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。
数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS 指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13 。
小甲鱼详细解答:我们规定每个存储单元为1Byte,8KB也就是8×1024Byte = 8192Byte。
这里求地址总线的宽度,也就是令2的n次方=8193,求出n就可以了。
(2)1KB的存储器有1024 个存储单元,存储单元的编号从0 到1023 。
小甲鱼详细解答:呵呵,不用解释了吧~
(3)1KB的存储器可以存储8192 个bit,1024 个Byte。
小甲鱼详细解答:1Byte = 8bit,1KB = 1024Byte。
看过小甲鱼的《零基础入门学习汇编语言》应该都会吧!
(4)1GB,1MB,1KB 分别是2^30 ,2^20 ,2^10 B
(5)8080、8088、80286的地址总线宽度分别为16根,20根,24根,32根,则他们的寻址能力分别为:64 KB 1 MB 16 MB 4 GB 。
小甲鱼详细解答:分别是2的多少16、20、24、32次方得出,再转化成对应的KB,MB,GB等单位即可。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根,8根,16根,16根,32根。
则他们一次可以传送的数据为: 1 B, 1 B, 2 B,2 B,4 B。
小甲鱼详细解答:上边地址索引的单位是以字节(byte)为单位,但数据不行,数据要以位(bit)为单位。
如还是不懂,请看《零基础入门学习汇编语言》视频解释。
(7)从内存中读取1024字节的数据,8086至少要读512 次,80386至少要读256 次。
小甲鱼详细解答:根据上题,8086每次可以读取2B,80386每次可以读取4B,则1024 ÷2 = 512,1024 ÷4 = 256次。
(8)在存储器中,数据和程序以二进制的形式存放。
本文来自:鱼C工作室<a href=> 详细出处参考:/a/kehouti/_huibianyuyan_/618.html。