计算机系统汇编语言和机器语言深入理解
目录引言1、机器语言2、汇编语言3、高级语言总结引言
《深入理解计算机系统》第三章——程序的机器级表示。作者首先讲解了汇编代码和机器代码的关系,阐述了汇编承上启下的作用;
接着从机器语言IA32着手,分别讲述了如何存储数据、如何访问数据、如何完成运算以及如何进行跳转。通过这些步骤,又告诉了我们分支 ...
汇编语言概览
目录Intel 8086CPU1.环境2.8086CPU常用指令3.8086CPU常用寄存器4.章节Intel X86架构处理器Intel X86_64架构处理器
因特尔公司的CPU,其定义的指令集一般为复杂指令集CISC,全称为complex instruction set computer
Intel 8086CPU
Intel的CPU,8086CPU下所有寄存器都是16位的
1.环境
vscode安装MASM/TASM插件
2.8086CPU常 ...
《汇编语言》学习笔记-0
汇编语言
注:本文档为“《汇编语言(第3版) 》王爽著”阅读过程中记的笔记。
参考视频:通俗易懂的汇编语言(王爽老师的书)_哔哩哔哩_bilibili
环境搭建
搭建步骤
目的:搭建8086 CPU的汇编程序仿真运行环境。在DOS环境下执行汇编程序。
搭建步骤:
(1)下载安装包
下载地址:简单/AssemblyLanguageTest (gitee.com)
(2 ...
【汇编语言】第二章 寄存器
目录
前言
2.1寄存器
通用寄存器
字
字在寄存器中的存储
2.2 mov,add,sub指令
mov指令
add指令
sub指令
2.3 16位结构的CPU
2.4 物理地址
8086CPU给出物理地址的方法
2.5 段
段的概念
段寄存器
2.6 CS和IP
2.7 修改CS和IP指令
jmp指令
总结
前言
最近学了王爽教授写的《汇编语言》 ...
【翻译】在Linux平台上使用Intel和AT&T汇编语言以及GCC内联汇编
本文翻译自 Using Assembly Language in Linux
本文将描述 Linux 平台下的汇编语言编程。本文包含 Intel 和 AT&T 语法 asm 之间的比较、系统调用使用指南和 gcc 中内联 asm 使用入门指南。
Intel汇编语法和AT&T汇编语法的区别
Intel 和 AT&T 语法汇编语言在外观上有很大的不同,如果先学习 Intel 语法后第一次遇到 AT&T ...
汇编语言 学习记录 - 01 - 基础概念
汇编语言
要使用计算机,就得用计算机“能够理解”的语言,即计算机语言。一台机器只认识本种机型的机器语言——指令系统,对于其余语言的程序,首先由编译器或解释器完成高级语言到机器语言的翻译工作,再由硬件系统来执行翻译后的程序。若要充分发挥机器硬件资源的作用,提高程序代码的效率,就必须直接使用机器的低级语 ...
汇编语言第4版 王爽(一)
本书采用以8086CPU为中央处理器的PC机来进行学习。8086CPU常用而结构简洁,可以方便地进行实践,便于教学。纯粹的8086PC机已经不存在了,但是现在的任何一台PC机中的微处理器,只要是和Intel兼容的系列,都可以用8086的方式进行工作。
附注1
微机中常用的Intel系列微处理器的主要发展过程是:8080,8086/8088,80186,80286,80 ...
UEFI开发实战SlimBootloader中调用FSP
目录综述编译PostBuildBuildPostBuildFSP二进制组成分析使用Stage1AStage1BStage2综述
FSP的全称是Firmware Support Package。FSP有以下的特性:
FSP提供了Intel重要组件(包括处理器、内存控制器、芯片组等)的初始化;FSP被编译成独立的二进制,并可以集成到Bootloader中,这里说的Bootloader可以是Slim Bootloader,core ...
UEFI开发实战用户交互界面使用说明VFR文件
目录1. 综述2. 作用3. 语法3.1 注释3.2 预定义3.3 数据结构3.4 Forms相关表达式总览3.4.1 formset3.4.2 formset list3.5 Form Set List3.5.1 变量定义3.5.2 控制语句3.5.3 Question语句3.5.4 form语句3.6 Forms表达式3.6.1 vfrStatementImage3.6.2 vfrStatementLocked3.6.3 vfrStatementRules3.6.4 vfrStatementDefault3.6. ...
UEFI开发实战用户交互界面使用说明UNI文件
目录综述作用语法基本定义语法说明UNI文件的使用综述
UEFI用户交互界面的实现涉及到多种不同类型的文件,这里要讲的是UNI文件,它也是其中最简单的一种。本文主要参考自《edk-ii-uni-specification.pdf》(以下简称参考文档)。它可以在EDK II Specifications · tianocore/tianocore.github.io Wiki · GitHub ...
UEFI开发实战用户交互界面基础说明
目录前言启动UiApp模块字体字符串UI Entry前言
本文以vUDK2017: https://github.com/tianocore/edk2.git Tag vUDK2017.中的代码为例说明UEFI用户交互界面的实现。
这里UEFI用户交互界面的实现载体是OVMF(使用QEMU启动),其形式如下:
它一般被叫做Front Page(后面将以该名称来称呼上述的界面),其下还包括Setup,Boot ...
UEFI开发基础HII代码示例
目录代码示例模块formsetformsubtitleoneofstringnumerictextcheckboxgotolabel代码示例
代码 https://gitee.com/jiangwei0512/edk2-beni
模块
BeniPkg\DynamicCommand\SetupDynamicCommand\SetupDynamicCommand.inf。
这里通过一个命令setup来打开图形界面。图形界面的form在Page.vfr中,还有若干的uni文件存放字符串 ...
UEFI开发基础汇编代码的使用
UEFI中使用汇编代码
EDK代码中包含一部分汇编代码,目前支持的有.S、.asm和.nasm格式的汇编(第一个是AT&T汇编,后两个是Intel汇编,只是使用的汇编样式稍有不同,.nasm是开源和免费的,更加的通用),如果是在Windows下编译,一般使用的是NASM编译器,所以会使用.nasm格式的汇编文件,而编译工具也是免费的,可以在https:/ ...
汇编语言程序设计(十)call和ret指令
目录引言ret和retf指令ret指令retf指令call指令用法:call 标号call far ptr 标号call 16位寄存器转移地址在内存中call指令call word ptr 内存地址单元call dword ptr 内存地址单元mul指令call与ret联合使用批量数据的传递寄存器冲突的问题
引言
call和ret都是转移指令,它们都修改IP,或者同时修改CS和IP
ret和retf指令
...
汇编语言
汇编语言一发入魂 – 杨河老李 (kviccn.github.io)
Writing a Bootloader Part 1 | Alex Parker's Website (3zanders.co.uk)  art 2
part 3 在Ubuntu的编译:sudo apt install build-essential -y
asm: nasm -f elf32 a.asm -o boot1.bin
comipile: g++ -m32 -ffreestanding -fno-exceptions -fno-rtti -fno-pic ...
汇编语言学习(对于8086CPU)
汇编语言学习(对于8086CPU)
前言:学了计算机导论再来学会更好,推荐也学一下计算机组成原理(只学过导论也可以)
这篇笔记没有前置理论知识,不讲历史之类的
直接从汇编开始
CPU寄存器
通用寄存器
首先,CPU需要除了ALU(运算)和CU(控制)还需要存储(寄存器)
此时,引出我们能够使用的:
四个通用寄存器:AX,BX,CX, ...
ARM汇编判断之如何用汇编判断数组中正负数个数
目录【ARM汇编】如何判断数组中正负数个数?写在前面:所有判断后缀如何用汇编实现判断数组中正负数的个数?1.编前准备1.1用C的伪代码表示1.2参照正向遍历的框架2.编写ARM汇编2.1先给定一串数组、输出格式2.2在循环中加入判断、计数2.3在主函数中初始化使用的寄存器2.4输出累计之和2.5源代码2.6运行结果3.总结【ARM汇编】如 ...
汇编语言实验——01
实验一 利用DEBUG熟悉常用指令的使用
一、实验目的
熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。
二、实验题
1、用debug命令查看并修改10000H处的内容,把结果截图在下面。
2、通过debug命令对寄存器和存储单元进行设置,使(DS ...
汇编语言实现方波的输出
汇编语言实现89C51单片机输出一个50HZ的方波,并由P1.1口输出的详解
系统时钟频率为12MHZ
单片机原理及接口技术书中的例程
;-----------------
;Title:定时器T1产生一个50HZ的方波由P1.1输出
;AuthorsDH-qiu
;Date:2022-4-5
;Abstract:fosc=12MHZ,利用定时器产生方波
;-----------------
ORG 0100H ;伪指令下一条指 ...
6.汇编语言
汇编语言与机器指令一一对应。汇编语言编写的代码需要经过汇编转为机器代码,机器代码经过反汇编转为汇编代码。
汇编后的程序分为几个段:
_DATA:初始化的全局变量
_BSS:未初始化的全局变量
_TEST:汇编代码
栈
32位windows支持32位寻址,程序运行映射到4G内存地址空间。高位地址 0x7fffffff~0xffffffff 这2g由内核占用。低2 ...