一文秒懂汇编中的循环问题
汇编系列其实也在一直更新,只不过更新的频率会挺慢的。。。由于白天一直忙于工作,空闲时间还要看书、学习各种技术栈,早上也要抽时间早期健身,晚上回家还要陪家人 + 学习,时间安排的满满当当,所以我就慢慢写,各位读者也别太着急,我其实真想再分一个自己出来。
之前的文章中介绍过 [0] 表示的是内存单元,它一般存储 ...
Debug的基本使用()
Debug是一个通过操作系统(os)对cpu寄存器进行访问用于学习汇编的程序,但是如今的win10(64位)已经不支持cmd打开debug,但是我们可以通过DOSBOX模拟器对其进行访问。
安装方法:先在https://www.dosbox.com中下载dosbox(默认路径在C:\Program Files (x86)),接下来在网上下载debug.exe,为了方便可以直接在D盘下创一 ...
汇编:Debug的常用命令
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
1、Debug的常用功能
R命令:查看、改变CPU寄存器的内容;D命令:查看内存中的内容;E命令:改写内存中的内容:U命令:将内存中的机器指令翻译成汇编指令:T命令:执行一条机 ...
汇编程序设计之DOSBox模拟环境配置
汇编程序设计DOSBox模拟环境配置最近在学习汇编语言设计,然后上网找关于汇编程序的编译软件。不负有心人,终于找到了我需要的软件,值得庆幸。关于配置方法以及步骤,以下详情。首先,我们需要一个环境,该环境称为:DOSBox环境,该环境是一个仿真器环境,仿真真实的DOS环境,可重新创建 MS-DOS 兼容环境(包括声音、输入 ...
【底层之旅:汇编语言探秘】什么是汇编语言?
什么是汇编语言 ?汇编语言(Assembly Language)是一种低级编程语言,用于与计算机硬件直接交互。它是计算机指令集架构的一种表现形式,使用符号代表计算机的机器指令。汇编语言与计算机硬件的关系密切,每一条汇编语句都对应着底层的机器指令,直接操作计算机的寄存器和内存。汇编语言在计算机编程的历史上扮演着重要的角 ...
汇编语言学习笔记
汇编语言学习笔记
目录
第一章 基础知识
第二章 寄存器(CPU工作原理)
第三章 寄存器(内存访问)
第四章 第一个程序
第五章 [BX]和loop指令
第六章 包含多个段的程序
第七章 更灵活定位内存地址
第八章 数据处理的两个基本问题
第九章 转移指令的原理
第十章 call和ret指令
第十一章 标志寄存器
第十二章 内中断
第十三章 ...
8086汇编语言基础学习(四)——汇编语言程序设计基础
8086汇编语言基础学习(四)——汇编语言程序设计基础
DOS中常用的系统调用:
1. 单字符输入并显示(01H功能调用)
描述:从键盘输入一个字符的ASCII码送入寄存器AL中,并送显示器显示。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中
格式:
2. 单字符输入但不显示(0 ...
8086汇编语言基础学习(三)——伪指令
8086汇编语言基础学习(三)——伪指令
什么是伪指令:
定义:
伪指令(Pseudo Instruction)是用于对汇编过程进行控制的指令,该类指令并不是可执行指令,没有对应机器代码,只用于汇编过程中为汇编程序提供汇编信息。
特点:
“伪”,假指令,是不可以执行的指令,没有对应的机器代码,不会占用ROM空间,只用于汇编过程 ...
8086汇编语言基础学习(二)—— 汇编指令
8086汇编语言基础学习(二)—— 汇编指令
数据传输指令:
1. MOV 指令
描述:赋值指令
格式:MOV DST,SRT
功能:双操作数,将SRT 赋值给DST
注意:
DST,SRT不能同时为mem,对于所有的双操作数皆是如此。
不允许对CS赋值
其中一个是段寄存器时,另一个就必须是数据寄存器
将立即数送入mem时,要指定操作数的类型 ...
汇编语言中的各种寄存器介绍
目录计算机寄存器分类简介1、数据寄存器2、变址寄存器3、指针寄存器4、段寄存器5、指令指针寄存器6、标志寄存器二、状态控制标志位1、追踪标志TF(Trap Flag)2、中断允许标志IF(Interrupt-enable Flag)3、方向标志DF(Direction Flag)三、32位标志寄存器增加的标志位1、I/O特权标志IOPL(I/O Privilege Level)2、嵌套任务标志N ...
8086汇编语言基础学习(一)——8086微机基础
8086微机基础
寄存器(Register)
CPU内部的高速存储单元
为CPU提供数据和地址信息
存储器地址(Address)
由大量存储单元组成,用编号区分每个存储单元
存储器的地址 = 存储器中存储单元的编号
每个存储单元存放一个字节的数据(1Byte=8bit)
地址采用十六进制表达
Inter8086有1MB的存储器容量(1MB=210KB=220B) ...
汇编语言
汇编语言
debug 是 DOS、Windows 都提供的实模式(8086 方式)程序的调试工具。
R 命令查看、改变 CPU 寄存器的内容
D 命令查看内存中的内容
E 命令改写内存中的内容
U 命令将内存中的机器指令翻译成汇编指令
T 命令执行一条机器指令
A 命令以汇编指令的格式在内存中写入一条机器指令
寄存器
AH&AL = AX (accumulator): ...
光速了解汇编语言
目录光速了解汇编语言什么是机器语言?汇编语言计算机的硬件动手编写第一个汇编程序继续学习汇编
光速了解汇编语言
什么是机器语言?
要想了解什么是汇编语言, 首先你得知道什么是机器语言!
计算机能够直接识别的是由二进制数0和1组成的代码, 它是不需要翻译直接就能识别 (直接执行) 的”母语”. 我们打个比方: 假设我们定义 ...
VScode配置8086汇编环境的过程解析
目录0、感慨 1、VScode的安装2、下载MASM/TASM插件3、测试汇编环境新建文件汇编文件配置汇编代码的运行0、感慨
搭配一个简单些的环境,对于我们汇编的学习很有帮助,在这里又不得不感叹vscode的强大,使用VScode+MASM/TASM插件就可以实现8086汇编。真的相对于其他的安装方式,我们都会认同越简单越好。
1、VScod ...
自己动手从零写桌面操作系统GrapeOS系列教程——21.汇编语言写硬盘实战
学习操作系统原理最好的方法是自己写一个简单的操作系统。
在上一讲中我们学习了用汇编语言读硬盘,本讲我们来学习用汇编语言写硬盘。同样也是设计一个简单的实验,实验内容为:
在内存中准备一段有特征的512字节数据,地址为0x7e00~0x7fff,其特征是前3个字节依次为4、5、6,最后3个字节依次为6、5、4。然后将该段内存 ...
微机原理与系统设计笔记4 | 汇编语言程序设计与其他指令
打算整理汇编语言与接口微机这方面的学习记录。本部分介绍汇编语言程序设计以及一些跟程序设计密切相关的指令类。
参考资料
西电《微机原理与系统设计》周佳社
西交《微机原理与接口技术》
课本《汇编语言与接口技术》王让定
小甲鱼《汇编语言》
1. 汇编程序结构/框架
段定义伪指令
程序不同的信息要定义在不同 ...
【8086汇编入门】《零基础入门学习汇编语言》汇编语言第4版
1基础知识
机器语言是机器指令的集合,由0和1组成,但是很长很复杂,汇编语言因此产生。
汇编语言的主体是汇编指令。汇编指令是机器指令的便于记忆的书写格式。
程序员写完汇编指令通过编译器转换为机器码,机器码再传到计算机执行。
汇编语言有以下三类:
1汇编指令:助记符,有对应机器码
2.伪指令:没有对应机器码,编译 ...
Dalvik汇编语言
Dalvik虚拟机 JIT(即时编译)
JIT (Just-in-time Compilation,即时编译),又称为动态编译,是一种通过在运行时将字节码翻译为机器码的技术,使得程序的执行速度更快。Android 2.2版本系统的Dalvik虚拟机引入了JIT 技术,官方宣称新版的Dalvik 虚拟机比以往执行速度快3~6倍。
两种字节码编译方式
method方式: 函数或者 ...
一文掌握汇编语言 halt 命令
目录汇编语言 halt 命令补充:halt命令手册参考实例:汇编语言 halt 命令
汇编 halt 命令,是一条重复执行指定标号的循环命令。处理器暂停,直到出现中断或复位信号才继续
/* 汇编点亮一个 LED 灯 */
.text
.global _start
_start:
ldr r1, =0x56000050
ldr r0, =0x100 /* 相当于 mov r0, #0x100 */
str r0, [ ...
汇编语言LDR指令和LDR伪指令详解
目录LDR指令和LDR伪指令详解ARM32位指令的构成ldr指令和ldr伪指令的使用区别:补充1:补充2:汇编语言ldr伪指令LDR指令和LDR伪指令详解
ARM32位指令的构成
ARM是RISC结构,数据从内存到CPU之间的移动只能通过LDR/STR指令来完成。 32bit = 指令码 + 数据。所以32bit的一条指令不可能表示再带一个32bit的数据,实际只有其中的 ...