零基础入门汇编语言(第四版王爽)~第1章基础知识

news2024/11/16 10:53:33

文章目录

  • 前言
    • 1.1 机器语言
    • 1.2 汇编语言的产生
    • 1.3 汇编语言的组成
    • 1.4 存储器
    • 1.5 指令和数据
    • 1.6 存储单元
    • 1.7 CPU对存储器的读写
    • 1.8 地址总线
    • 1.9 数据总线
    • 1.10 控制总线
    • 1.1~1.10小结
    • 检测点1.1
    • 1.11 内存地址空间概述
    • 1.12 主板
    • 1.13接口卡
    • 1.14 各类存储器芯片
    • 1.15 内存地址空间

前言

作者简介
王爽 著名计算机科学教育家,哲学家,在高等教育、计算机科学与技术、IT产业等诸多领域都有所成就。1975年出生于黑龙江省齐齐哈尔市。1997年毕业于宁夏大学计算机科学及应用专业。2007年开创了可行性哲学理论体系。从1999年起,陆续提出并实践了知识屏蔽、线索化、多元环境、可持续性发展能力培养、纯公益教育体系等一系列对我国教育事业的发展具有基础意义与启示意义的思想与理论。2005年到2012年,建立了“三个一工程”等多项旨在培养计算机专业学习者核心专业能力和综合素质的大型教育公益事业。

王爽老师多年以来一直极力于推动教育发展的各项事业,是我国计算机专业领域的教育公益事业的开启者与多项大型教育公益事业的建立者。从2005年起到2012年,其在教育领域所进行的理论与实践工作,成为我国计算机专业领域的教育公益事业发展的基础。

1.1 机器语言

说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概念。现在,在我们常用的 PC 机中,有一个芯片来完成上面所说的计算机的功能。这个芯片就是我们常说的CPU(Central Processing Unit, 中央处理单元),CPU 是一种微处理器。 以后我们提到的计算机是指由CPU 和其他受CPU 直接或间接控制的芯片、器件、设备组 成的计算机系统,比如我们最常见的PC机。
每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控 制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。
早期的程序设计均使用机器语言。程序员们将用0、1数字编成的程序代码打在纸带 或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。
应用8086CPU完成运算s=768+12288-1280, 机器码如下:

101110000000000000000011
000001010000000000110000
001011010000000000000101
假如将程序错写成以下这样,请你找出错误。
101100000000000000000011
000001010000000000110000
000101101000000000000101

书写和阅读机器码程序不是一件简单的工作,要记住所有抽象的二进制码。上面只是 一个非常简单的小程序,就暴露了机器码的晦涩难懂和不易查错。写如此小的一个程序尚 且如此,实际上一个有用的程序至少要有几十行机器码,那么,情况将怎么样呢?
在显示器上输出 “welcome to masm”, 机器码如下:

00011110
101110000000000000000000
01010000
101110001100011000001111
1000111011011000
1011010000000110
1011000000000000
1011011100000111
101110010000000000000000
1011011000011000
1011001001001111
1100110100010000
1011010000000010
1011011100000000
1011011000000000
1011001000000000
1100110100010000
1011010000001001
10001101000101100010101000000000
1100110100100001
1011010000001010
10001101000101100011000100000000
1100110100100001
1011010000000110
1011000000010100
1011011100011001
1011010100001011
1011000100010011
1011011000001101
1011001000111100
1100110100010000
1011010000000010
1011011100000000
1011000000001100
1011001000010100
1100110100010000
1011010000001001
10001101000101100000000000000000
1100110100100001
11001011
看到这样的程序,你有什么感想?如果程序里有一个“1”被误写为“0”,又如何去 查找呢?

1.2 汇编语言的产生

早期的程序员们很快就发现了使用机器语言带来的麻烦,它是如此难于辨别和记忆, 给整个产业的发展带来了障碍。于是汇编语言产生了。
汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。
例如:机器指令1000100111011000表示把寄存器 BX 的内容送到 AX 中。汇编指令 则写成mov ax,bx。这样的写法与人类语言接近,便于阅读和记忆。

操作:寄存器BX 的内容送到AX 中 机器指令:1000100111011000
汇编指令:mov ax,bx

(寄存器,简单地讲是CPU 中可以存储数据的器件,一个CPU 中有多个寄存器。AX 是其中一个寄存器的代号,BX 是另一个寄存器的代号。更详细的内容我们在以后将会讲到。)
此后,程序员们就用汇编指令编写源程序。可是,计算机能读懂的只有机器指令,那 么如何让计算机执行程序员用汇编指令编写的程序呢?这时,就需要有一个能够将汇编指 令转换成机器指令的翻译程序,这样的程序我们称其为编译器。程序员用汇编语言写出源 程序,再用汇编编译器将其编译为机器码,由计算机最终执行。图1.1描述了这个工作过程。

图1.1 用汇编语言编写程序的工作过程

1.3 汇编语言的组成

汇编语言发展至今,有以下3类指令组成。

1、汇编指令:机器码的助记符,有对应的机器码。
2、伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
3、其他符号:如+、一、*、/等,由编译器识别,没有对应的机器码。

汇编语言的核心是汇编指令,它决定了汇编语言的特性。

1.4 存储器

CPU 是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个 CPU 工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存在一台 PC 机中内存的作用仅次于 CPU离开了内存,性能再好的CPU 也无法工 作。这就像再聪明的大脑,没有了记忆也无法进行思考。磁盘不同于内存,磁盘上的数据 或程序如果不读到内存中,就无法被 CPU 使用。要灵活地利用汇编语言编程,我们首先 要了解CPU 是如何从内存中读取信息,以及向内存中写入信息的。

1.5 指令和数据

指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU 在工作的时候把有的信息看作指令,有的信息看作数据,为同样的信息赋 予了不同的意义。就像围棋的棋子,在棋盒里的时候没有任何区别,在对弈的时候就有了 不同的意义。

例如,内存中的二进制信息1000100111011000,计算机可以把它看作大小为89D8H(该数据为十六进制) 的数据来处理,也可以将其看作指令mov ax,bx来执行。

1000100111011000 ->89D8H (数据)
1000100111011000 ->mov ax,bx (程序)

1.6 存储单元

存储器被划分成若干个存储单元,每个存储单元从0开 始顺序编号,例如一个存储器有128 个存储单元,编号从 0~127,如图1.2所示。
在这里插入图片描述
那么一个存储单元能存储多少信息呢?我们知道电子计算机的最小信息单位是 bit(音译为比特),也就是一个二进制 位。8个bit 组成一个Byte, 也就是通常讲的一个字节。微型机存储器的存储单元可以存储一个Byte, 即8个二进制位。一个存储器有128个存储单元,它可以存储128个Byte。
微机存储器的容量是以字节为最小单位来计算的。对于拥有128 个存储单元的存储器,我们可以说,它的容量是 128个字节。
对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte):
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位。

1.7 CPU对存储器的读写

以上讲到,存储器被划分成多个存储单元,存储单元从零开始顺序编号。这些编号可 以看作存储单元在存储器中的地址。就像一条街,每个房子都有门牌号码。
CPU 要从内存中读数据,首先要指定存储单元的地址。也就是说它要先确定它要读 取哪一个存储单元中的数据。就像在一条街上找人,先要确定他住在哪个房子里。
另外,在一台微机中,不只有存储器这一种器件。CPU 在读写数据时还要指明,它 要对哪一个器件进行操作,进行哪种操作,是从中读出数据,还是向里面写入数据。
可见,CPU 要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面3类 信息的交互。

1、存储单元的地址(地址信息)
2、器件的选择,读或写的命令(控制信息)
3、读或写的数据(数据信息)

那么 CPU 是通过什么将地址、数据和控制信息传到存储器芯片中的呢?电子计算机 能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中专门有连接 CPU 和其他芯片的导线,通常称为总线。总线从物理上来讲,就是一根根导线的集合。
根据传送信息的不同,总线从逻辑上又分为3类,地址总线、控制总线和数据总线。 CPU 从3号单元中读取数据的过程(见图1.3)如下。
在这里插入图片描述

(1)CPU通过地址线将地址信息3发出。
(2)CPU通过控制线发出内存读命令,选中存储器芯片并通知它,将要从中读取数据。
(3)存储器将3号单元中的数据8通过数据线送入 CPU。

写操作与读操作的步骤相似。如向3号单元写入数据26。
(1)CPU 通过地址线将地址信息3发出。
(2)CPU 通过控制线发出内存写命令,选中存储器芯片,并通知它,要向其中写入 数据。
(3)CPU 通过数据线将数据26送入内存的3号单元中。
从上面我们知道了 CPU 是如何进行数据读写的。可是,如何命令计算机进行数据的读写呢?
要让一个计算机或微处理器工作,应向它输入能够驱动它进行工作的电平信息(机器码)。 对于8086CPU, 下面的机器码,能够完成从3号单元读数据。

机器码:101000010000001100000000
含义:从3号单元读取数据送入寄存器AX

CPU 接收这条机器码后将完成我们上面所述的读写工作。 机器码难于记忆,用汇编指令来表示,情况如下。

机器码: 101000010000001100000000
对应的汇编指令:MOV AX,[3]
含义: 传送3号单元的内容入AX

1.8 地址总线

现在我们知道,CPU 是通过地址总线来指定存储器单元的。可见地址总线上能传送 多少个不同的信息,CPU 就可以对多少个存储单元进行寻址。
现假设,一个CPU 有10根地址总线,让我们来看一下它的寻址情况。我们知道,在 电子计算机中,一根导线可以传送的稳定状态只有两种,高电平或是低电平。用二进制表示就是1或0,10根导线可以传送10位二进制数据。而10位二进制数可以表示多少个不 同的数据呢?2的10次方个。最小数为0,最大数为1023。
图1.4展示了一个具有10根地址线的CPU 向内存发出地址信息11时10根地址线上 传送的二进制信息。考虑一下,访问地址为12、13、14等的内存单元时,地址总线上传 送的内容是什么?
一个CPU 有 N 根地址线,则可以说这个CPU 的地址总线的宽度为N 。这样的CPU 最多可以寻找2的N次方个内存单元。
在这里插入图片描述

1.9 数据总线

CPU 与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度 决定了CPU 和外界的数据传送速度。8根数据总线一次可传送一个8位二进制数据(即一 个字节)。16根数据总线一次可传送两个字节。
8088CPU 的数据总线宽度为8,8086CPU 的数据总线宽度为16。我们来分别看一下它 们向内存中写入数据89D8H时,是如何通过数据总线传送数据的。图1.5展示了8088CPU 数据总线上的数据传送情况;图1.6展示了8086CPU 数据总线上的数据传送情况。
8088CPU分两次传送89D8, 第一次传送D8, 第二次传送89。
在这里插入图片描述
在这里插入图片描述

8086有16根数据线,可一次传送16位数据,所以可一次传送数据89D8H; 而8088 只有8根数据线,一次只能传8位数据,所以向内存写入数据89D8H 时需要进行两次数据传送。

1.10 控制总线

**CPU 对外部器件的控制是通过控制总线来进行的。**在这里控制总线是个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着 CPU 提供了对外部器件的 多少种控制。所以,控制总线的宽度决定了CPU 对外部器件的控制能力。
前面所讲的内存读或写命令是由几根控制线综合发出的,其中有一根称为“读信号输 出”的控制线负责由CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取 数据;有一根称为“写信号输出”的控制线则负责传送写信号。

1.1~1.10小结

1、汇编指令是机器指令的助记符,同机器指令一一对应。
2、每一种CPU都有自己的汇编指令集。
3、CPU 可以直接使用的信息在存储器中存放。
4、在存储器中指令和数据没有任何区别,都是二进制信息。
5、存储单元从零开始顺序编号。
6、一个存储单元可以存储8个bit, 即8位二进制数。
8、1Byte=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB。
9、每一个 CPU 芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。 一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能:
(1)、地址总线的宽度决定了CPU的寻址能力;
(2)、数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
(3)、 控制总线的宽度决定了CPU 对系统中其他器件的控制能力。

检测点1.1

( 1 ) 1 个CPU 的寻址能力为8KB, 那么它的地址总线的宽度为(13位)
解题思路:1KB=1024B,8KB=1024B*8=2^N,N=13

(2)1KB 的存储器有 (1024)个存储单元。存储单元的编号从 (0)到 (1023)
解题思路:存储器的容量是以字节为最小单位来计算的,1KB=1024B

(3)1KB的存储器可以存储8192(2的13次方)个bit, (1024)个 Byte。
解题思路:8Bit=1Byte,1024Byte=1K(1KB=1024B=1024B*8Bit)

(4)1GB 是1073741824(2 ^ 30)个Byte、1MB是1048576(2^20)Byte 、1KB 分别是1024(2 ^ 10)Byte。

(5)8080、8088、80286、80386的地址总线宽度分别为16根、20根、24根、32 根,则它们的寻址能力分别为: 64 (KB) 、1(MB) 、 16(MB) 、 4(GB)。
解题思路:一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16 根、32根。则它们一次可以传送的数据为: 1(B)、 1 (B)、 2(B)、 2(B) 、4(B)。
解题思路:8根数据总线一次可以传送8位二进制数据(即一个字节)。

(7)从内存中读取1024字节的数据,8086至少要读 (512)次,80386至少要读 (256)次。
解题思路:8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。

(8)在存储器中,数据和程序以(二进制)形式存放。
解题思路:在存储器中指令和数据没有任何区别,都是二进制信息。

1.11 内存地址空间概述

什么是内存地址空间呢?举例来讲,一个CPU 的地址总线宽度为10,那么可以寻址 1024个内存单元,这1024个可寻到的内存单元就构成这个 CPU 的内存地址空间。下面进行深入讨论。首先需要介绍两部分基本知识,主板和接口卡。

1.12 主板

在每一台PC 机中,都有一个主板,主板上有核心器件和一些主要器件,这些器件通 过总线(地址总线、数据总线、控制总线)相连。这些器件有 CPU、存储器、外围芯片组、 扩展插槽等。扩展插槽上一般插有RAM 内存条和各类接口卡。

1.13接口卡

计算机系统中,所有可用程序控制其工作的设备,必须受到 CPU 的控制。CPU对外部设备都不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。扩展插槽通过总线和CPU相连,所以接口卡也通过总线同CPU相连。CPU可以直接控制这些接口卡,从而实现CPU对外设的间接控制。简单地讲,就是CPU通过总线向接口卡发送命令,接口卡根据CPU 的命令控制外设进行工作。

1.14 各类存储器芯片

一台 PC 机中,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。从读写属性上看分为两类:随机存储器(RAM) 和只读存储器(ROM)。 随机存储 器可读可写,但必须带电存储,关机后存储的内容丢失;只读存储器只能读取不能写入, 关机后其中的内容不丢失。这些存储器从功能和连接上又可分为以下几类。
● 随机存储器
用于存放供 CPU 使用的绝大部分程序和数据,主随机存储器一般由两个位置上 的 RAM 组成,装在主板上的RAM 和插在扩展插槽上的RAM。
● 装有BIOS(Basic Input/Output System,基本输入/输出系统)的ROM
BIOS 是由主板和各类接口卡(如显卡、网卡等)厂商提供的软件系统,可以通过 它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应 BIOS 的 ROM 。例如,主板上的 ROM 中存储着主板的 BIOS(通常称为系统 BIOS); 显卡上的 ROM 中存储着显卡的 BIOS; 如果网卡上装有 ROM, 那其中 就可以存储网卡的BIOS。
● 接口卡上的RAM
某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有 RAM 。最典型的是显示卡上的 RAM, 一般称为显存。显示卡随时将显存中的数据向显示 器上输出。换句话说,我们将需要显示的内容写入显存,就会出现在显示器上。
图1.7展示了PC 系统中各类存储器的逻辑连接情况。
在这里插入图片描述

1.15 内存地址空间

上述的那些存储器,在物理上是独立的器件,但是在以下两点上相同。

● 都和CPU 的总线相连。
● CPU对它们进行读或写的时候都通过控制线发出内存读写命令。

这也就是说,CPU 在操控它们的时候,把它们都当作内存来对待,把它们总的看作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。 在汇编这门课中,我们所面对的是内存地址空间。
图1.8展示了CPU 将系统中各类存储器看作一个逻辑存储器的情况。
在这里插入图片描述
在图1.8中,所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,每个 物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU 在这段地址空 间中读写数据,实际上就是在相对应的物理存储器中读写数据。

假设,图1.8中的内存地址空间的地址段分配如下。

地址0 ~ 7FFFH的32KB空间为主随机存储器的地址空间;
地址8000H ~ 9FFFH的 8KB空间为显存地址空间;
地址A000H ~ FFFFH的24KB空间为各个ROM的地址空间;

这样,CPU 向内存地址为1000H 的内存单元中写入数据,这个数据就被写入主随机存储器中;CPU 向内存地址为8000H 的内存单元中写入数据,这个数据就被写入显存中,然后会被显卡输出到显示器上;CPU 向内存地址为 C000H 的内存单元中写入数据的 操作是没有结果的,C000H 单元中的内容不会被改变,C000H 单元实际上就是ROM 存储 器中的一个单元。
内存地址空间的大小受CPU 地址总线宽度的限制。8086CPU的地址总线宽度为20, 可以传送220个不同的地址信息(大小从0至2²0-1)。即可以定位220个内存单元,则 8086PC的内存地址空间大小为1MB。同理,80386CPU的地址总线宽度为32,则内存地 址空间最大为4GB。
我们在基于一个计算机硬件系统编程的时候,必须知道这个系统中的内存地址空间分 配情况。因为当我们想在某类存储器中读写数据的时候,必须知道它的第一个单元的地址 和最后一个单元的地址,才能保证读写操作是在预期的存储器中进行。比如,我们希望向显示器输出一段信息,那么必须将这段信息写到显存中,显卡才能将它输出到显示器上。要向显存中写入数据,必须知道显存在内存地址空间中的地址。
不同的计算机系统的内存地址空间的分配情况是不同的,图1.9展示了8086PC 机内 存地址空间分配的基本情况。
在这里插入图片描述
图1.9告诉我们,从地址0 ~ 9FFFF 的内存单元中读取数据,实际上就是在读取主随机存储器中的数据;向地址 A0000 ~ BFFFF 的内存单元中写数据,就是向显存中写入数据, 这些数据会被显示卡输出到显示器上;我们向地址 C0000~FFFFF 的内存单元中写入数据 的操作是无效的,因为这等于改写只读存储器中的内容。

                                   内存地址空间 

最终运行程序的是CPU, 我们用汇编语言编程的时候,必须要从 CPU 的角度考虑问题。对CPU 来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU 寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。 对于初学者,这个概念比较抽象,我们在后续的课程中将通过一些编程实践,来增加感性认识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1988549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9.C基础_指针与数组

数组指针(一维数组) 数组指针就是" 数组的指针 ",它是一个指向数组首地址的指针变量。 1、数组名的含义 对于一维数组,数组名就是一个指针,指向数组的首地址。 基于如下代码进行分析: int a…

el-form-item,label在上方显示,输入框在下方展示

本来是两排展示去写&#xff0c;设计要求一排展示&#xff0c;label再上方&#xff0c;输入框、勾选框在下方&#xff1b;只能调整样式去修改&#xff1b;参考label-position这个属性 代码如下&#xff1a; <el-form ref"form" :model"formData" clas…

【好书推荐-第二十期】《程序员进阶之路:缓存、网络、内存与案例》:讲解计算机系统中的核心知识分享实际工作中的技术难题及解决方案

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号&#xff1a;洲与AI。 &#x1f388; 本文专栏&#xff1a;本文收录…

认识Creator热更新

Creator热更新 1、什么是热更新 当你下载一个游戏&#xff0c;比如王者荣耀&#xff0c;打开时发现提示有新的资源包要让你更新&#xff0c;那就是使用了热更新。 热更新主要是用于原生环境的andriod和ios&#xff0c;对于小游戏不用&#xff0c;小游戏是审核过后&#xff0c…

同声传译用什么软件?亲测好用的同传翻译器分享

巴黎奥运会的到来&#xff0c;让全球的目光再次聚焦于这座浪漫之都。作为国际盛事&#xff0c;语言沟通无疑成为连接各国运动员、观众与媒体的桥梁。 面对多语言环境的挑战&#xff0c;一款高效、准确的同声传译软件显得尤为重要。它不仅能即时传递赛场激情&#xff0c;还能让…

加密软件有什么功能

加密软件是一种用于保护数据安全的工具&#xff0c;它通过对数据进行加密处理&#xff0c;使得未经授权的用户无法访问或篡改这些数据。加密软件使用各种加密算法&#xff0c;如对称加密、非对称加密等&#xff0c;确保数据在传输和存储过程中的安全性。 一、加密软件的功能 数…

【leetcode】相同的树、另一棵树的子树、翻转二叉树(利用深度优先遍历)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构、LeetCode专栏 &#x1f4da;本系…

【mars3d】LayerType 的arcgis_feature类型的图层配置聚合属性,达到聚合效果

相关api文档&#xff1a; Global - V3.7.23 - Mars3D API文档 Global - V3.7.23 - Mars3D API文档 ArcGisWfsLayer - V3.7.23 - Mars3D API文档 实现代码&#xff1a; export function onMounted(mapInstance) {map mapInstance // 记录首次创建的map// 添加参考三维模型co…

html+css+js网页设计原神8个页面带js

htmlcssjs网页设计原神8个页面带js 有轮播图&#xff0c;一键置顶等多种效果 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操…

​​​​​​​ 《大学新生编程入门指南:从新手到大神的蜕变之路》

编程小白如何成为大神&#xff1f;大学新生的最佳入门攻略 编程已成为当代大学生的必备技能&#xff0c;但面对众多编程语言和学习资源&#xff0c;新生们常常感到迷茫。如何选择适合自己的编程语言&#xff1f;如何制定有效的学习计划&#xff1f;如何避免常见的学习陷阱&…

PD暗电流的测试小技巧

随着新基建概念的提出&#xff0c;5G和数据中心的建设在2020年进入快车道&#xff0c;海量的光模块需求引领着行业的更新换代&#xff0c;对光器件提出了更高的要求。在光通信测试领域&#xff0c;也将迎来很多挑战。 共同面对未来挑战&#xff0c;泰克将推出一系列关于光通信…

计算机网络复习总结

第一章 计算机网络体系结构 1、计算机网络的概念组成和功能 &#xff08;1&#xff09;什么是计算机网络&#xff1f; 计算机网络是将一个分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。…

网页离线缓存 Service Worke

随着 Web 技术的飞速发展&#xff0c;用户对网站的要求越来越高&#xff0c;为了达到用户期望&#xff0c;开发者使出了浑身解数来做性能优化&#xff0c;包括 CDN 内容分发、图片合并、资源文件压缩、异步加载等等手段&#xff0c;这些手段绝大部分都是在干一件事情&#xff0…

真人拍摄,还是技术生成?会走路的数字人物到底是谁?

近日&#xff0c;一段数字人视频引发了全网热议&#xff0c;画面中&#xff0c;一个外观与真人无异的女子在说话的同时缓缓走动。这也让不少网友质疑&#xff0c;视频中所出现的会走路的数字人物并非是由技术生成&#xff0c;而是真人拍摄。“数字人不都是固定不动的吗&#xf…

【Linux学习】文件系统 - 揭秘磁盘存储结构与存储原理

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f351;磁盘文件管理&#x1f680;磁盘的机械构成&#x1f30c;磁盘的物理存储&#x1f351;存储原理&#x1f4d5;磁盘的逻辑…

XML 发票解析

文章目录 1. xml 类型发票格式2. 数据提取思路2.1 项目结构 3. 提取实现3.1 实体类3.2 提取工具类3.3 controller3.4 service 4. 结果展示 1. xml 类型发票格式 本文解析的xml类型的发票格式如下 2. 数据提取思路 通过遍历xml文件中的标签去获得标签对应的文本 2.1 项目结…

MySQL的简单介绍

文章目录 数据库关系型数据库非关系型数据”数据库的概念和用途MySQL数据库服务器、数据库和表的关系数据库的创建和删除表创建表修改常见的数据类型和约束字符串类型日期和时间类型PRIMARY KEY使用AUTO_INCREMENT使用UNIQUE使用FOREIGN KEY使用 SQL语言基础SQL语言简介SQL分类…

基于Spark的豆瓣书籍推荐系统的设计与实现-计算机毕业设计源码53447

摘要 本论文主要论述了如何基于Spark开发一个豆瓣书籍推荐系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述豆瓣书籍推荐系统的当前背景以及系统开发的目的&#xff0c;后续章节将严…

谷粒商城实战笔记-MySQL踩坑记录

文章目录 1&#xff0c; Public Key Retrieval is not allowed问题描述解决办法 2&#xff0c;1044 -Access denied for user root% to database解决方案 1&#xff0c; Public Key Retrieval is not allowed 问题描述 打开DBeaver连接MySQL提示“Public Key Retrieval is no…

大数据信用报告查询有什么作用?怎么选择查询平台?

随着互联网的快速发展&#xff0c;人们的金融行为越来越多地依赖于网络平台。然而&#xff0c;网络上的金融交易存在着一定的风险&#xff0c;为了有效地防范这些风险&#xff0c;金融机构采用了大数据技术进行风险控制&#xff0c;下面&#xff0c;小易大数据平台将详细介绍大…