汇编语言

汇编语言中的'#'

匿名 (未验证) 提交于 2019-12-02 23:00:14
汇编语言中的“#”代表的是寻址方式为 立即寻址 。 比如指令: MOV A,#21H MOV意思是单片机片内RAM之间传送,该指令的意思是:将 ֵ21H 送给寄 存器A 中暂存; 如果把**“#”去掉**,MOV A,21H该指令寻址方式变了,为 直接寻址 ,21H就不是值了,而变成了一个地址,意思为:将21H这个地址里面中的内容送给寄存器A中暂存。 其中单片机中的寻址方式为7种方式,分别为:立即寻址,直接寻址,位寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址。 加了#就是发送 立即数 的意思。 文章来源: 汇编语言中的'#'

汇编语言之实验三

匿名 (未验证) 提交于 2019-12-02 22:56:40
1. 练习1 第1步,编写汇编源程序t1.asm, 源程序代码如图1-1所示。 运行 编辑 结果为24 cs=076A da=075A 满足(cs)=(ds)+10H ② PSP(程序段前缀)的头两个字节是CD 20, 用debug查看PSP的内容,验证是否 如此。 果然如此 运行 第2步,对源程序 t2.asm 进行汇编、连接、运行、调试 (1) 对t2.asm进行汇编、连接后,得到可执行文件t2.exe。运行t2.exe,观察程序运行 结果,验证是否在屏幕左上方出现红色的数值36。 注*)经测试,有些平台在 dosbox 下运行这个程序时有些问题,如果屏幕左上方没有 输出结果,请运行程序t2.exe前,先输入cls命令清空一下屏幕,然后再执行t2.exe。 如上图 (2) 如果(1)结果得到验证,重新打开t2.asm,尝试将源代码中line7的0433h→0432h, line10 的 0436h→0439h, 然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清 屏后,再次观察程序运行结果。 (3) 如果(1)结果得到验证,重新打开t2.asm,尝试将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接,得到可执行文件 t2.exe。使用 cls 命令清 屏后,再次观察程序运行结果。 3.

编程语言分类

匿名 (未验证) 提交于 2019-12-02 22:11:45
Ŀ¼ 编程语言就是人与计算机交流的介质 计算机是通过高低电平来进行控制的,它只认识0和1,所以在最开始,在编程的时候都是使用0和1编写,这样可以直接操控计算机进行工作。 这个语言就是机器语言 优点:执行效率高 缺点:开发效率极低 汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词 优点(较于机器语言):开发效率高一点 缺点(较于机器语言):执行效率低 因为机器语言和汇编语言都是最接近底层的语言,对于一般人来说就跟天书一样,看都看不懂,更何况去编程呢! 所以为了让更多的人能够进行编程,使编程变得更加简单快速,前辈们绞尽脑汁,掉光了头发终于发明了高级语言,高级语言有如下优缺点: 优点(较于汇编语言):开发效率高 缺点(较于汇编语言):执行效率低(不直接和硬件交互) 这样一般人也能够去进行编程了,但不同的武林高手发明的秘籍(高级语言)各有区别,可分为如下两大类: 编译型语言 解释性语言 大家都用过谷歌翻译,你把一段话粘贴到谷歌翻译上,他会给你一次性翻译成中文,并且会记录下来,以后就不用再次进行翻译了。 编译型语言也是,只有你把代码一次性写完之后,才能执行翻译,并且以后也不需要进行翻译了,下次需要使用直接调用记录就好了 优点(较于解释性语言):执行效率高 缺点(较于解释性语言):开发效率低(发生bug需要逐行进行检查) 解释性语言就相当于同声传译,你说一句话

通俗地理解什么是编程语言

丶灬走出姿态 提交于 2019-12-02 15:22:15
学习编程语言之前,首先要搞清楚「编程语言」这个概念。 很小的时候,父母就教我们开口说话,也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习,我们竟然在不知不觉中学会了说话,同时也能听懂其他小朋友说话的意思了,我们开始向父母要零花钱买零食和玩具、被欺负了向父母倾诉…… 我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,父母就会满足,我们用“中国语言”来控制父母,让父母做我们喜欢的事情。 “中国语言”有固定的格式,每个汉字代表的意思不同,我们必须正确的表达,父母才能理解我们的意思。例如让父母给我们10元零花钱,我们会说“妈妈给我10块钱吧,我要买小汽车”。如果我们说“10元给我汽车小零花钱妈妈”,或者“妈妈给我10亿人民币,我要买F-22”,妈妈就会觉得奇怪,听不懂我们的意思,或者理解错误,责备我们。 我们通过有固定格式和固定词汇的“语言”来控制他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然他们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去控制他人。 同样,我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。 编程语言也有固定的格式和词汇,我们必须经过学习才会使用,才能控制计算机。 编程语言有很多种,常用的有 C语言 、 C++ 、 Java

汇编语言学习笔记2- X86处理器构架

泄露秘密 提交于 2019-12-02 11:23:24
X86处理器构架 一般概念 中央处理单元(CPU)组成部件: 寄存器、时钟、控制单元、算术逻辑单元 总线类型: 数据总线、控制总线、地址总线、*I/O总线 指令执行周期: 取指、译码、执行 (如用到存储器操作数,则还需要取操作数、存操作数) 访问存储器要比寄存器花费更多的时间的原因: 内存常处于CPU之外,对访问请求响应慢一些,而寄存器硬连接在CPU之内 主要三种操作模式: 保护模式、实地址模式、系统管理模式 、*虚拟8086模式 基本执行环境 1.EAX被称为扩展累加器,乘除指令默认使用 2.ECX被默认使用为循环计数器 3.ESP被称为扩展堆栈指针 4.ESI和EDI被称为扩展源变址和扩展目的变址 5.EBP被称为扩展帧指针 6.EIP为指令指针,包含下一条将要执行的指令地址 32位 16位 高8位 低8位 EAX AX AH AL EBX BX BH BL ECX CX CH CL EDX DX DH DL 32位 16位 ESI SI EDI DI EBP BP ESP SP 状态标志位 CF(CY) 进位标志 无符号运算最高有效位产生进位时为1 OF(OV) 溢出标志 有符号运算操作数超出机器能表示的范围表示溢出,溢出时为1 SF(NG) 符号标志 记录运算结果的符号,结果负时为1 ZF(ZR) 零标志 运算结果等于0时为1 AF(AC) 辅助进位标志 运算时

汇编语言之物理地址

让人想犯罪 __ 提交于 2019-12-02 10:50:34
16位结构的cpu的特点 运算器一次最多可以处理16位数据 寄存器的最大宽度是16 寄存器和运算器之间的通路是16位 8086cpu给出物理地址的方法 8086cpu有20位地址总线,可以传送20位地址,也就是1M寻址能力,而8086又是16位结构,在内部一次性处理、传输、暂时存储的地址为16位,则寻址能力只有64KB 8086cpu采用一种内部用两个16位地址合成的方法形成20位的物理地址 cpu相关部件提供两个16位的地址,一个称为段地址,一个称为偏移地址 段地址和偏移地址通过内部总线送入一个称为地址加法器的部件 地址加法器将两个16位地址合成一个20位的物理地址(物理地址) = (段地址)*16+(偏移地址) 地址加法器通过内部总线将20位物理地址送入输入输出控制电路 输入输出控制电路将20位物理地址送上地址总线 20位物理地址被总线传送到存储器 来源: https://blog.csdn.net/qq_29983883/article/details/102753250

汇编语言入门

天涯浪子 提交于 2019-12-02 08:24:45
  感觉汇编语言还是很酷的,查了很多资料,这里再发一篇。   学习编程其实就是学高级语言,即那些为人类设计的计算机语言。 但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。   计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。 汇编语言不容易学习,就连简明扼要的介绍都很难找到。下面我尝试写一篇最好懂的汇编语言教程,解释 CPU 如何执行代码。 一、汇编语言是什么?   我们知道,CPU 只负责计算,本身不具备智能。你输入一条指令(instruction),它就运行一次,然后停下来,等待下一条指令。 这些指令都是二进制的,称为操作码(opcode),比如加法指令就是00000011。编译器的作用,就是将高级语言写好的程序,翻译成一条条操作码。 对于人类来说,二进制程序是不可读的,根本看不出来机器干了什么。为了解决可读性的问题,以及偶尔的编辑需求,就诞生了汇编语言。   汇编语言是二进制指令的文本形式,与指令是一一对应的关系。比如,加法指令00000011写成汇编语言就是 ADD。只要还原成二进制,汇编语言就可以被 CPU 直接执行,所以它是最底层的低级语言。 二、来历   最早的时候

你说的曾经没有我的故事 提交于 2019-12-02 08:09:12
  不是科班毕业,直接学了Java入行,最近打算学C语言,了解一些入门级的语言,就看了一点入门的东西,这一篇汇编语言也是拾人牙慧,这里贴上原文地址,尊重原创。    《汇编语言》- 来自底层的较量 - 温故而知新 https://www.cnblogs.com/yougewe/p/8011911.html 。   百科的汇编语言定义:汇编语言(assembly language)是一种用于 电子计算机 、 微处理器 、 微控制器 或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用 助记符 代替 机器指令 的 操作码 ,用地址符号或标号代替指令或 操作数 的地址。在不同的设备中,汇编语言对应着不同的机器语言 指令集 ,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。 一、汇编语言能干什么?仅次于机器语言?   计算机工作是由一系列的机器指令进行驱动工作的,这些指令是一系列二进制数字 0101000110,对应计算机的高低电平,而这些机器指令的集合就是机器语言,这已经是最底层,和硬件一对一了已经。   很明显,这样的机器语言是反人类的。只有天才和疯子才有能力去把控他。   于是汇编语言产生了。汇编语言就是将一些难于记忆的0100100转换为便于记忆的格式,让人能够稍微理解点。如 将寄存器bx的内容送到ax中

计算机基础

风流意气都作罢 提交于 2019-12-02 06:16:50
一、计算机基础之编程 什么是编程语言 语言是两种食物之间的沟通介质。python是一门编程语言,编程语言是人与计算机之间沟通的介质。 什么是编程 编程是指程序员将自己的想让计算机做的事通过某种编程语言写入一个文件中,其结果就是生成一些列文件,这一些列文件就是程序。 编程的目的 人们想让计算机帮助人类完成工作,就需要通过编程实现。 二、计算机的组成 计算机由控制器,运算器,存储器,输入设备,输出设备五大组成部分。其中控制器与运算器组成计算机的中央处理器(CPU)。 控制器 计算机的指挥系统 运算器 计算机的运算系统,包括: 算数运算,如:1 + 1 = 2 逻辑运算,如:1是否等于2? 中央处理器(CPU) 中央处理器包括控制器、运算器和高速缓冲存储器及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。 存储器 计算机的存储系统,包括内部存储与外部存储。 3.1 内存 计算机内临时存储数据的硬件设备,CPU直接与其交互,如内存条。 优点:存取速度快 缺点:容量小,基于电存储,断电即消失 3.2 外存 计算机内永久存储数据的硬件设备,计算机不与其直接交互,如软盘,磁带,磁盘,U盘等。 优点:存储容量大,可永久存储数据。 缺点:存取速度慢。 计算机三大核心组件 CPU,内存,外存组成计算机的三大核心组件。 输入设备 计算机输入信息的设备,如键盘,鼠标,扫描仪,麦克风等。

学 汇编语言 -- 王爽 笔记

删除回忆录丶 提交于 2019-12-02 03:16:49
学 汇编语言 -- 王爽 笔记 -- munds 1: 计算机是由 cpu,内存,外部储存器,主板,等等 组成 2: cpu 通过 数据总线,地址总线,控制总线 来与外部设备交流 3: cpu 通过 统一地址总线 来控制 各大部件 4: cpu 通过 数据总线 接收和发送 数据到 内存 5: 某些cpu 通过 DMA 来控制 速度比较慢的设备 比如 硬盘,软盘,光盘 等 ------------------------------- 废话分割线 ------------------------------------------------------------------------------------------------ cpu 通过各种寄存器来储存临时信息 寄存器有: ax,bx,cx,dx,cs,ds,ss,es cpu运行一条指令的详细动作是 : 1 从cs寄存器中取值 ,2 把给值作为内存地址发送到地址总线上,3 内存器给cpu发送该地址的内容 ,4 cpu处理内容(这个内容就是计算机指令) 在8086中 所有的寄存器都是16位,在 80386 中 所有的寄存器都是 32位 ax,bx,cx,dx 都是 可以分为 al,ah,等的8位寄存器 ax = ah x 2^8 + al cpu可以单独的对 al ,ah等8位寄存器直接操作 cpu