汇编语言80x86系统通用数据传送指令详解
目录通用数据传送指令附上UML Markdown代码:通用数据传送指令
MOV
move
传送
MOVSX
move with sign-extend
带符号扩展传送
MOVZX
move with zero-extend
...
汇编语言指令集学习CMPXCHG比较并交换操作指令详解
指令助记符 CMPXCHG
含义: 比较并交换指令
用法:目的操作数和累加操作数(AH、AL、EAX)进行比较,如果相等(ZF=1),则将源操作数复制到目的操作数中,否则将目的操作数复制到累加器中。
指令格式:
CMPXCHG reg reg
CMPXCHG mem reg
例子详解:
CMPXCHG CX,DX
1.指令执行前:(AX)=00FFH,(CX)=00FFH,(DX)=00EFH;
...
汇编语言指令集学习条件转移指令详解
目录1.根据单个条件标志的设置情况转移2. 比较两个无符号数,并根据比较的结果转移3. 比较两个带符号数,并根据比较的结果转移4.测试CX或ECX的值为0则转移指令条件转移指令较多,容易混淆,在此记录一下便于日后使用
1.根据单个条件标志的设置情况转移
指令
英文
含义
...
汇编语言Debug命令详解教程
目录1. Debug-R命令2. Debug-D命令
3. Debug-E命令
4. Debug-U命令
5. Debug-T命令6. Debug-A命令参考书籍《汇编语言》——王爽
Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询。
命令
用途
Debug-R
...
汇编语言DOSBox及debug.exe在Windows64下环境搭建
该文同为类似问题 “如何在 Windows 64 位系统下进入 debug” 的答案。
很多同学初看王爽的《汇编语言》,或者因为其它原因需要进入 debug 调试模式下学习汇编语言时,会出现类似以下的错误提示
这是因为他们使用的是 64 位的 Windows 系统(Win 7,Win 8 以及 Win 10 等),而 64 位 Windows 系统不再支持在命令提示符窗 ...
x86汇编DOS编程环境搭建过程
目录前言相关工具的介绍DOSBOX汇编工具包DOSBOX的使用汇编连接执行调试其它前言
在学习x86汇编时,第一步是搭建一个可以编译、运行代码的环境
这方面的教程有一些,但是给出的下载链接还要付费,或者内容不全,我看不起这些人,所以自己写一个,方便看到这个文档的大家,需要下载附件以度盘给出,免费下载
链接: https://pa ...
汇编语言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 ...