汇编语言MIPS指令分类及寻址模式原理概念
目录一、相关概念二、MIPS操作数之32个寄存器三、MIPS汇编语言指令类型及寻址方式1. R型指令2. I型指令3. J型指令四、MIPS类型及寻址方式分析1. MIPS字段命名2. 指令类型3. MIPS寻址方式一、相关概念
指令集:一个给定的计算机体系结构所包含的指令集合。
存储程序概念:多种类型的指令和数据均以数字形式存储于存储器的概 ...
汇编语言基础理解计算机底层技术原理
目录前言1.机器语言2.进制思想本质3.二进制我们为什么学习理解二进制?
4.数据宽度5.有符号数和无符号数6.原码反码补码7.位运算8.位运算的加减乘除9.汇编语言环境说明10.寄存器的理解11.内存12.总结前言
备注:该技术博客的内容是我根据技术视频整理与总结的(并非复制粘贴)。原视频源于【遇见狂神说】
如果我们想要做高级 ...
X86汇编调试环境搭建的过程
最近毕设需要做一个基于X86的微型OS内核,一直在学习汇编,前来记录一下
汇编环境搭建
本次使用vscode搭建的,需要的插件有X86 and X86_64 Assembly(也可以使用masm插件),还有一个hexdump for VSCode。
安装NASM,并添加到环境变量
安装QEMU,并将其添加到环境变量下
编写代码:(代码来自30天自制操作系统)
; hello-os ...
汇编语言期末复习——第五章 模块化程序设计
一、子程序结构
子程序=函数=过程
子程序指令
子程序调用指令
CALL LABEL ;调用标号、子程序名指定的子程序
分成近调用(段内调用)和远调用(段间调用)
入栈返回地址:将CALL下条指令的地址压入堆栈
近调用:IP入栈
远调用:CS和IP都入栈
子程序返回指令
RET
分为有参数返回和无参数返回,都是出栈返回 ...
汇编语言期末复习——第四章 程序结构
一、顺序程序结构
程序的静态分析 略
程序的动态分析 略
实例:读取CMOS RAM数据程序 略
二、分支程序结构
无条件转移指令
代码段寄存器CS指出代码段的段基地址,指令指针IP给出将要执行的偏移地址
转移范围
段内转移——只改变IP
段内转移也称近转移(NEAR)
如果转移范围可以用1字节编 ...
汇编语言期末复习——第三章 通用数据处理指令
一、数据传送类指令
通用传送指令——MOV
mov指令并非任意传送:
源操作数和目的操作数不能同时为主存储器操作数
MOV DBUF2,DBUF1 ;错误
MOV AX,DBUF1
MOV DBUF2,AX ;正确
源操作数和目的操作数不能同时为段寄存器操作数
立即数不能直接传送给段寄存器
MOV DS, @DATA ;错误
MOV A ...
汇编语言第二次实验
汇编语言第二次实验
1.实验任务一
任务1_1:
对程序task1_1.asm进行汇编、连接,用debug加载、跟踪调试,基于结果,回答问题。
task1_1.asm:
1 assume ds:data, cs:code, ss:stack
2
3 data segment
4 db 16 dup(0)
5 data ends
6
7 stack segment
8 db 16 dup(0)
9 stack ends
10 code segment
11 start:
12 ...
汇编语言期末复习——第二章
一、数据表示
数制 16进制H 2进制B
编码
N位无符号整数范围0~pow(2,N)-1
补码:最高位为符号位,0正1负。负数补码:全取反再加一(算上符号位在内全取反)
字符编码——BCD 8421
压缩的BCD:一个字节表达两位BCD
非压缩的BCD:二进制八位仅用低四位表达一个BCD
字符编码——ASCII
标准ASC码用7位编码,有128 ...
汇编语言教程文件后缀大小写S区别分析详解
目录一、大小写后缀的区别二、编译的相关流程1、预处理器2、编译阶段3、汇编阶段4、链接阶段一、大小写后缀的区别
.s 汇编语言源程序;汇编
.S 汇编语言源程序;预处理,汇编
小写的s文件,在后期阶段不在进行预处理操作,所以我们不能在这里面写预处理的语句在里面
大写的S文件,还会进行预处理、汇编等操作,所以我们可以在 ...
汇编语言期末复习——第一章
零、DOS基本功能的调用(int 21H)
功能号
入口参数
出口参数
说明
AH=01H
AL=ASCII字符
从键盘输入一个字符
AH=02H
DL=欲显示的ASCII字符
显示一个字符
AH=09H
DSX=欲显示字符串的逻辑地址
1.必须以'$'结尾
2.因为入口参数是地址所以总是以offset xxx的形式写
AH=0AH
DSX=键盘输入缓 ...
汇编基础程序编写教程示例
目录源程序1.1 构成寄存器与段的关联假设标号定义一个段程序结束标记程序返回程序运行1.2 源程序中的“程序”1.3 段结束、程序结束、程序返回1.4 语法错误和逻辑错误2 程序执行的过程2.1 一个汇编语言程序从写出到最终执行的简要过程:2.2 连接2.3 可执行文件2.4 程序执行过程的跟踪总结3 程序编写3.1 两个基本的问题3.2 数 ...
汇编基础教程段的定义应用详解
目录段种类代码段数据段DS和[address]栈段栈操作方式8086CPU提供入栈和出栈指令栈顶超界的问题push、pop指令PUSH(入栈)POP(出栈)栈段定义思考访问段前缀场景1场景2段
将一段内存定义为一个段,用一个段地址指示段,用偏移地址访问段内的单元
种类
代码段
定义
对于8086PC机,在编程时,可以根据需要,将一组内存单元定 ...
汇编语言显示功能实现教程详解
目录问题11 如何确定字符要显示的位置确定3行字符在每一行的起始位置确定3行字符在屏幕中的哪一行2 如何确定字符要显示的颜色属性 问题2:分析:问题1
在屏幕中间分别显示绿底,绿底红色,白底蓝色的字符串“Welcome to masm!”
分析:
1 如何确定字符要显示的位置
在80*25的彩色字符模式显示缓冲区在内存地址的B ...
汇编语言功能字符串大小写转换实现实例详解
目录问题1:将data段中的第一个字符串转换成大写,第二个字符串转换成小写问题2:将data段中每个单词的头一个字母改成大写字母问题3:将data段中每个单词改为大写字母问题4:将data段中每个单词的前4个字母改为大写字母问题5:设计一个子程序,将一个全是字母的字符串转化成大写问题6:设计一个子程序,将一个全是字母,以0 ...
汇编语言功能实现数据复制实例详解
目录问题1:将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中问题2:将“mov ax,4c00h“之前的指令复制到内存0:200处问题3:将程序中定义的数据逆序存放问题4:将字符串”welcome to masm”复制到它后面的数据区中问题1:将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中
分析
1、0:200~0:20b单元如何表示
...
汇编语言功能用循环累加实现乘法
目录问题1:编程计算2的2次方,结果存在ax中分析:用2+2实现问题2:编程实现2的12次方分析:用loop实现问题3:编程实现123*236,结果存在ax中分析:用236相加123次的计算次数比较少,节约计算资源问题4:计算ffff:0006单元中的数乘以3,结果存储在dx中1、判断数据是否能够存储2、判断数据相加是否能够位数相同问题5:计算ff ...
汇编语言入门汇编指令及寄存器详解教程
目录前言什么是汇编语言汇编语言产生的原因汇编与二进制的关系寄存器寄存器作用存取速度比较寄存器分类常用寄存器用途寄存器EAX、AX、AH、AL的关系汇编语言指令数据传送指令算术运算指令逻辑运算指令循环控制指令转移指令linux 和 windows 下汇编的区别总结前言
我们大都是被高级语言惯坏了的一代,源源不断的新特性正在逐 ...
汇编语言指令大全(详细)
gxg1978
2013-05-09 11:31:43
18149
...
树莓派ARM64汇编语言程序设计入门实验
实验3-2 查找最大数
编写汇编代码并编译运行
参照实验参考数给出的代码实现arm64汇编语言实现找出最大数。将最大数设置在中间,为我的学号1320。
.section .data
.align 3
my_data:
.quad 1
.quad 2
.quad 5
.quad 1320
.quad 10
.quad 12
my_data_count:
.quad 6
.align 3
print_data:
.string "big data: %d\n ...
汇编语言学习笔记(4)——汇编基本指令集
注:为讲授方便,使用下列符号:
N
代表立即数
N8、N16、N32代表8、16、 32位立即数
R
代表寄存器操作数
R8、R16、R32代 表8、16、32位寄存器操作数
M
代表内存操作数
M8、M16、M32代 表8、16、32位内存操作数
S
代表段寄存器
一、传送类指令
1. 通用传送
数据传送
功能:源→目,源不变,不 ...