《编译原理》阅读笔记:p18

《编译原理》学习第 3 天,p18总结,总计 14页。

一、技术总结

1.assembler

(1)计算机结构

要想学习汇编的时候更好的理解,要先了解计算机的结构,以下是本人学习汇编时总结的一张图,每当学习汇编时,看到“计数器”,“解码器”,“寄存器”,“数据总线”等概念时,就知道说的这些东西在哪个位置。
在这里插入图片描述

(2)assembly code(汇编代码)

p17,Some compilers produce assembly code, as in (1.5), that is passed to an assembler for further processing.

MOVF id3, R2
MULF #60.0, R2
MOVF id2, R1
ADDF R2, R1
MOVF R1,id1

上面汇编代码对应的代码为:

temp1 := id3 * 60.0
id1: = id2 + temp1

这里提到了汇编代码,所以我们在阅读本书时需要有一点汇编语言基础:

(3)指令(instruction)

如MOVF, F表示Floating-point numbers。注意,指令有两种语法,分别是Intel 语法和AT&T语法。支持Intel语法的主要是Windows系统,支持AT&T语法的主要是Unix系统。

Intel 语法:mov dest, src

AT&T 语法:mov src, dest

参考:https://en.wikipedia.org/wiki/X86_assembly_language

p15, The first and second operands of each instruction specify a source and destination, respectively…This code moves the contents of address id3 into register2, then multiplies it with the real-constant 60.0.——书里使用的是AT&T语法,本书作者之一Alfred V.Aho与AT&T的关系:Alfred V.Aho is head of the Computation Principle Research Department at AT&T Bell Laboratories in Murray Hill New Jersey。

(4)#号

表示intermediate data。

2.machine code

0001 01 00 00000000 
0011 01 10 00000010
0010 01 00 00000100 

如上所示称为machine code, 当我们看到“machine code”这个词的时候我们要想到上面的代码。

二、其它

进入六月以来,每天都忙于加班,疲于奔命,阅读《编译原理》几乎无进度,然而内心觉得这并不是我想要的,因为长此以往,就会停不前,还是要每天学习一些新的东西;二是,自己也不喜欢这样重复的去做相同的事。所以,我又折回来继续看书了。

四、参考资料

1. 编程

(1)Alfred V. Aho,Monica S. Lam,Ravi Sethi,Jeffrey D. Ullman,《编译原理(英文版·第1版)》:https://book.douban.com/subject/5416783/

2. 英语

(1)Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org
在这里插入图片描述

欢迎搜索及关注:编程人(a_codists)

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

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

相关文章

线上OOM问题排查总结

自己搭建了一个小博客,该文章与博客文章同步。 一般情况下,出现OOM主要有一下三种原因。 一次性申请对象的太多。更改申请对象数量。内存资源耗尽未释放。找到未释放的对象进行释放。本身资源不够。jmap -heap 查看堆信息。 分几种情况解决&#xff1…

多模态-大模型:MLLM综述(适用初学)

文章目录 前言一、多模态模型基础知识二、多模态指令调优(M-IT)1.MLLM基础2.模态对齐3.数据获取4.模态桥接 三、多模态上下文学习(M-ICL)三、多模态思维链 (M-CoT)四、LLM辅助视觉推理1.训练范式2. LLM功能 五、一些思考总结 前言…

网络通信基础-02

什么是ARP协议 ARP(Address Resolution Protocol,地址解析协议)是一种网络协议,用于将网络层的IP地址解析为物理层的MAC地址。在计算机网络中,通信的两个设备之间需要知道对方的MAC地址才能进行数据传输,而…

OS中断机制-外部中断触发

中断函数都定义在中断向量表中,外部中断通过中断跳转指令触发中断向量表中的中断服务函数,中断指令可以理解为由某个中断寄存器的状态切换触发的汇编指令,这个汇编指令就是中断跳转指令外部中断通过在初始化的时候使能对应的中断服务函数如何判断外部中断被触发的条件根据Da…

关于ONLYOFFICE8.1版本桌面编辑器测评——AI时代的领跑者

关于作者:个人主页 目录 一.产品介绍 1.关于ONLYOFFICE 2.关于产品的多元化功能 二.关于产品体验方式 1.关于套件的使用网页版登录 2.关于ONLYOFFICE本地版 三.关于产品界面设计 四.关于产品文字处理器(Document Editor) 1.电子表格&a…

昇思25天学习打卡营第6天 | 函数式自动微分

神经网络的训练主要使用反向传播算法, 模型预测值(logits)与正确标签(label)送入损失函数(loss function)获得loss, 然后进行反向传播计算,求得梯度(gradie…

数据中心 250KW 水冷负载组概述

该负载专为数据中心冷水机组调试和测试应用而设计, 是一款紧凑的便携式产品,具有无限功率和水流控制功能,可实现精确的温升设置与施加的功率。鹦鹉螺是完全可联网的,可以从远程站控制单个或多个单元。 使用带有触摸屏 HMI 的 PLC,…

豆包大语言模型API调用错误码一览表

本文介绍了您可能从 API 和官方 SDK 中看到的错误代码。 http code说明 400 原因:错误的请求,例如缺少必要参数,或者参数不符合规范等 解决方法:检查请求后重试 401 原因:认证错误,代表服务无法对请求进…

FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流

《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,虽然MediaMTX使用很简单,可是不能满足复杂的业务需求,故而实际应用中需要引入专业的流媒体服务器。 nginx-rtmp是开…

Navicat连接Oracle出现Oracle library is not loaded的解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 使用Navicat链接Oracle的时候,出现如下提示:Oracle library is not loaded. 截图如下所示: 2. 原理分析 通常是由于缺少必需的 Oracle 客户端库或环境变量未正确配置所致 还有一种情况是 32位与64位的不匹配:Navica…

基于Langchain-chatchat搭建本地智能知识问答系统

基于Langchain-chatchat搭建本地智能 搭建本地智能知识问答系统:基于Langchain-chatchat的实践指南引言项目概述环境安装Anacondapip 项目安装步骤大语言模型(LLM)的重要性结语 搭建本地智能知识问答系统:基于Langchain-chatchat的…

记错医院预约的日期,选择加号还是回去?

记错了去医院的日期,起了个大早,用了 90 分钟才到医院,取号时提示没有预约的号,才发现记错时间了。这个时候是选择找医生加号还是直接回去呢?如果是你怎么选择? 如果选择找医生加号,号会排到最后…

STM32 ---- F1系列内核和芯片系统架构 || 存储器映像 || 寄存器映射

一,存储器映像 STM32 寻址范围:2^32 4 * 2^10 *2^10 K 4 * 2^10 M 4G 地址所访问的存储单元是按字节编址的。 0x0000 0000 ~ 0xFFFF FFFF 什么是存储器映射? 存储器本身不具有地址信息,给存储器分配地址的…

STM32单片机WDG看门狗详解

文章目录 1. WDG简介 2. IWDG框图 3. IWDG键寄存器 4. IWDG超时时间 5. WWDG框图 6. WWDG工作特性 7. WWDG超时时间 8. IWDG和WWDG对比 9. 代码示例 1. WDG简介 WDG(Watchdog)看门狗 看门狗可以监控程序的运行状态,当程序因为设计…

2024年6月24日 语法纠正

修改前的 So happy to see you again in our English Corner. Today, we have our old friend Fannie come with us and Ms. Liang is also here. Because today we use this new meeting material at first time, I arbitrarily assgin the roles according to everyone’s r…

Docker Compose--安装Nginx--方法/实例

原文网址:Docker Compose--安装Nginx--方法/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Docker Compose如何安装Nginx。 目录结构 ├── config │ ├── cert │ │ ├── xxx_bundle.pem │ │ └── xxx.key │ ├── conf.d │ …

【ONLYOFFICE震撼8.1】ONLYOFFICE8.1版本桌面编辑器测评

随着远程工作的普及和数字化办公的发展,越来越多的人开始寻找一款具有强大功能和便捷使用的办公软件。在这个时候,ONLYOFFICE 8.1应运而生,成为了许多用户的新选择。ONLYOFFICE 8.1是一种办公套件软件,它提供了文档处理、电子表格…

jupyter中如何看plt.plot的局部细节

在Jupyter中使用matplotlib时,如果你想要放大图表的某一部分,可以使用matplotlib的交互式方式查看局部细节。 %matplotlib notebook # 在Jupyter中使用交互式后端 import matplotlib.pyplot as plt import numpy as np# 生成数据 x np.linspace(0, 10…

TiDB 资源管控的对撞测试以及最佳实践架构

作者: GreenGuan 原文来源: https://tidb.net/blog/bc405c21 引言 TiDB 是一个存算分离的架构,资源管控对这种分离的架构来说实现确实有非常大的难度,TiDB 从 7.1 版本开始引入资源管控的概念,在社区也有不少伙伴测…

STM32实现独立看门狗和窗口看门狗

文章目录 1. WDG 2. IWDG独立看门狗 2.1 main.c 3. WWDG窗口看门狗 3.1 main.c 1. WDG 对于WDG看门狗的详细解析可以看下面这篇文章: STM32单片机WDG看门狗详解-CSDN博客 看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原…