猿创征文 |汇编语言基础知识

目录

1.0小结

1.5小结

1.1汇编语言的“前身”——机械语言

  非书本:

书本原图内容: 

共两页

​编辑1.2汇编语言的产生

经典图例 

汇编语言与机器语言之间的关系(书本)

高级语言和汇编之间的关系(非书本)

书本原文

1.3汇编语言的组成(书本知识点)

3种指令

汇编语言的核心  

1.4存储器(CPU)

存储器的种类

关于磁盘,内存和cpu之间的关系

1.5指令和数据

1.6储存单元

关于堆栈

 堆是先进先出,栈是先进后出

1.7cpu对存储器的读写

书本图片介绍:

 3类信息交互

总线

 传递过程(书本知识点):

书本内容

1.8地址总线(寻址能力)

书上的一个思考问题

1.9数据总线

补充完善:

数据总线图例

1.10控制总线

1.11 内存地址空间(概述)

1.12 主板

1.13 接口卡

1.14各类存储器芯片(硬盘和内存与缓存)

从读写属性上分为两类

从功能和连接上分成下面三类

随机存储器:

装有BIOS的ROM

接口卡上的RAM

1.15内存地址空间


1.0小结

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


在汇编课程中,我们从功能角度介绍了3类总线,对实际的连接情况不做讨论

1.5小结

最终运行程序的是cpu,我们用汇编语言的时候,必须要从cpu的角度考虑问题。对cpu来讲,
系统中的所有存储器的存储单元都处于一个统一的逻辑存储器中,他的容量受cpu寻址能力的限制。

这个逻辑存储器即使我们所说的内存地址空间

 

               汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言”作为一门语言,对应于高级语言编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

                                                                                                ——摘抄自百度

        https://baike.baidu.com/item/计算机汇编语言/8786633?fr=aladdin

1.1汇编语言的“前身”——机械语言

提示:不喜欢看书本的,每部分都有笔者自己的理解和总结,可以跳到“非书本”(特别凝练)

同时书本也代表了专业和权威,有时间也希望大家能沉下心来,早日在学术上登峰造极。

  非书本:

        笔者以为:

     机器语言:二进制

     汇编语言:键盘字母代替一连串二进制

     高级语言:封装了一连串字符串(字母组合)

以下是机器语言,汇编语言和高级语言的区别(其他博主写的很详细了) 

https://blog.csdn.net/ling12abc/article/details/102993550?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166133785316782395350372%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166133785316782395350372&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-102993550-null-null.142^v42^pc_ran_alice,185^v2^control&utm_term=机器语言和汇编语言&spm=1018.2226.3001.4187https://blog.csdn.net/ling12abc/article/details/102993550?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166133785316782395350372%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166133785316782395350372&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-102993550-null-null.142%5Ev42%5Epc_ran_alice,185%5Ev2%5Econtrol&utm_term=%E6%9C%BA%E5%99%A8%E8%AF%AD%E8%A8%80%E5%92%8C%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80&spm=1018.2226.3001.4187

书本原图内容: 

共两页

1.2汇编语言的产生

经典图例 

汇编语言与机器语言之间的关系(书本)

高级语言和汇编之间的关系(非书本)

书本原文

非书本 

关于寄存器后面会提到

1.3汇编语言的组成(书本知识点)

3种指令

1.汇编指令:机器码的助记符,有对应的机器码

2.伪指令:没有对应的机器码,由编译器执行,计算机不执行(突然联想到力扣刷题的伪代码)

3.其他符号:如加减乘除(...+-*/),由编译器识别,没有对你应的机器码

汇编语言的核心  

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

1.4存储器(CPU)

注意:这里的存储器并非指CPU,而是他们之间的关系很密切(实际上是内存)

cpu作为计算机核心部件,控制着计算机(运作和计算),而让cpu工作就需要发送和接收指令和数据

而这些指令和数据在存储器释放(你可以理解为缓冲区)
内存对于cpu处理器的重要性就如同思考对于大脑的重要

存储器的种类

ROM 只读存储器

RAM 随机存储器

Cache 高速缓存存储器 

关于磁盘,内存和cpu之间的关系

磁盘中不像内存可以下一步被cpu处理

也就是说

磁盘-->寄存器(内存)-->cpu

 但笔者想 寄存器不直接叫内存可能是还有些细微的区别,因此查询了其他笔者的博客,如下:

 

 什么是随机存取_内存和存储器有什么区别?_weixin_39777163的博客-CSDN博客

下面了解cpu如何从内存中读取信息,以及向内存中写入信息的

1.5指令和数据

指令和数据是应用上的概念;

在内存或磁盘上,指令和数据都是二进制

如 

10011010101(随便打的,可能是二进制,也可能是16进制)

既可以代表数如69,也可以是MOV  ax,[3](机器码转换成的汇编指令)

1.6储存单元

存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号

关于堆栈

写完汇编笔者准备写算法的内容,现在笔者一直也分不很清,只知道,堆不是垃圾堆那种封底的

 堆是先进先出,栈是先进后出

好像大学要记住这句话,但是就像笔者们对堆栈的描述没有把这句话当重点的,反而大家对堆栈底部作用的解析更容易让我们明白堆栈的区别

换算单位

1B=8bit

1KB=1024B

1MB=1024KB

1GB=1024KB

1GB=1024MB

1TB=1024GB

磁盘的容量单位同内存一样,以上单位是微机中常用的计量单位

1.7cpu对存储器的读写

书本图片介绍:

 3类信息交互

         cpu想要进行数据的读写,必须和外部的器件(标准的说法是芯片),进行3类信息交互

存储单元的地址(地址信息)

器件的选择,读或写的命令(控制信息)

读或写的数据(数据信息)

总线

计算机中专门连接CPU和其他芯片的导线(bus)

总线从物理上来讲就是一根根导线的集合

逻辑上分三类

        地址总线(address bus),控制总线(contorl bus),数据总线(data bus)

由图可见

总线(传递公共信息)连接了CPU和内存, 

 传递过程(书本知识点):

1.cpu通过地址线将地址信息3发出(这个发出具体是复制一份还是后面的送出,这件事可能和指针有关)

2.cpu通过控制线发出让内存读取命令,去选择存储芯片,通知他,将要从中读取数据

3.存储器将3单元中的数据8通过数据线送入cpu

注意:这里的3.8是单元格序号(类似于数组下标,从0开始,里面有不同的值)

书本内容

讲的就是  一串机械码如何对应汇编指令

1.8地址总线(寻址能力)

寻址,地址里储存的就是数据

既然  cpu通过地址总线来指定存储单元的,那么   地址总线上能传递多少个不同的信息,cpu就可以对多少个存储单元进行寻址

同时机器码中的0,1在导线中的稳定状态,只有两种,高低电平,因此假设10根导线,就可以传送10位二进制数据,也就是表示2的10次方个不同的数据,(最大1023,最小0,一共1024也就是2的10次方个)

书上的一个思考问题

 问了下大佬,等他的回复

1.9数据总线

补充完善:

cpu与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了cpu和外界数据传送速度

数据总线图例

8根数据总线的,要传两次,

16根数据总线的传一次

1.10控制总线

cpu对外部器件的控制是通过控制总线来进行的。

在这里控制总线是个总称,控制总线是一些不同控制线的集合,、

同理,多少根控制总线,也意味着cpu提供多少种对外部器件的控制。

1.11 内存地址空间(概述)

cpu的地址总线为n,寻址能力为2的n次方

这2的n次方个内存单元构成了cpu的内存地址空间

1.12 主板

每一台pc机都有一个主板

主板<===>总线(地址/数据/控制)<===>内外部器件(cpu/存储器/外围芯片组/扩展插槽(其上一般有RAM内存条和各类接口卡)”)

1.13 接口卡

由于cpu对外部设备无法直接控制,如:显示器/音箱/打印机

因此用插在扩展插槽上的接口卡间接控制

扩展插槽通过总线与cpu取得联系

cpu===>接口卡===>外部设备

1.14各类存储器芯片(硬盘和内存与缓存)

一台pc机上有很多存储器芯片,在物理上连接是独立的

从读写属性上分为两类

RAM随机存储器(硬盘)ROM只读存储器(内存,显存)
可读可写只读去不能写入
带电储存,关机后存储内容丢失关机后内容不丢失

        提示:显存就是高速内存,缓存是内存的一部分

从功能和连接上分成下面三类

随机存储器:

存放cpu使用的绝大部分程序和数据

其中,主存储器一般由两个位置上的RAM组成:主板上的RAM和扩展槽上的RAM

装有BIOS的ROM

什么是BIOS?

BIOS是厂商提供的软件,控制硬件进行基本的输入输出

例如:

                 主板和接口卡上有存储相应BIOS的ROM
                   主板上的ROM存储着主板的BIOS
                    显卡的ROM上存储着显卡的BIOS
         如果网卡上装有ROM,其中就可以存储网卡的BIOS

 BIOS和ROM之间就是这样的关系

接口卡上的RAM

由于某些接口卡需要大量输入输出(显示器的),对数据进行暂时存储,其上RAM,一般称为显存(高速缓存)

也就是当我们把需要显示的内容写入显存,然后就会出现在显示器上

因为是手机拍的,将就看(不会用补帧软件)

1.15内存地址空间

1.14中提到的存储器,在物理上是独立的器件,但是有两点相同的

1.都与CPU的“总线”相连
2.cpu对它们进行读或写的时候都通过控制线发出内存读写命令

也就是在cpu眼中,存储器就相当于内存(即内存地址空间)

如图所示:

由图我们可以想象到,所有的物理存储器都可以假想成一个具有若干存储单元组成的“逻辑存储器”,而这些物理存储器在假想的逻辑存储器中各自占有一段地址空间,cpu在这段空地址中间读写

数据,实际上就是在对应的物理存储器中读写数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的示例代码,展示了一个基本的征文投稿平台的前端界面和一些关键功能。这只是一个示例,你可以根据自己的需求进行修改和扩展。 HTML: ```html <!DOCTYPE html> <html> <head> <title>征文投稿平台</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h1>征文投稿平台</h1> <form action="submit.php" method="post" enctype="multipart/form-data"> <label for="name">姓名:</label> <input type="text" id="name" name="name" required><br><br> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required><br><br> <label for="title">文章标题:</label> <input type="text" id="title" name="title" required><br><br> <label for="abstract">摘要:</label> <textarea id="abstract" name="abstract" required></textarea><br><br> <label for="keywords">关键词:</label> <input type="text" id="keywords" name="keywords" required><br><br> <label for="file">上传文件:</label> <input type="file" id="file" name="file"><br><br> <input type="submit" value="提交"> </form> </body> </html> ``` CSS (style.css): ```css body { font-family: Arial, sans-serif; margin: 20px; } h1 { text-align: center; } form { width: 400px; margin: 0 auto; } label { display: inline-block; width: 100px; } input[type="text"], input[type="email"], textarea { width: 250px; padding: 5px; } input[type="submit"] { margin-left: 100px; padding: 10px 20px; background-color: #4CAF50; color: white; border: none; cursor: pointer; } ``` PHP (submit.php): ```php <?php // 获取表单提交的数据 $name = $_POST['name']; $email = $_POST['email']; $title = $_POST['title']; $abstract = $_POST['abstract']; $keywords = $_POST['keywords']; $file = $_FILES['file']; // 处理文件上传 $uploadDir = 'uploads/'; $uploadFile = $uploadDir . basename($file['name']); if (move_uploaded_file($file['tmp_name'], $uploadFile)) { echo "文件已上传成功!"; } else { echo "文件上传失败!"; } // 将数据保存到数据库或其他处理逻辑 // ... ?> ``` 这个示例代码包括一个HTML表单,其中包含姓名、邮箱、文章标题、摘要、关键词和文件上传字段。当用户提交表单时,数据将通过POST方法发送到submit.php文件进行处理。在submit.php文件中,你可以根据需要处理表单数据和文件上传,然后将数据保存到数据库或其他地方。 请注意,这只是一个基本示例,你可能需要根据实际需求进行修改和扩展。还需要添加服务器端的验证和安全性措施,以及进一步的后端处理逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白村第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值