
汇编语言
文章平均质量分 81
从零开始学习汇编语言
JintuZheng
胡言乱语综合征患者,私人用博客
展开
-
用VSCode风格的编辑器写MASM汇编语言:ASM CoolKits 汇编实验套件
大家以前选择的工具老师给你们推荐的是什么?你喜欢这个?喜欢这个?还是喜欢这个?当你看到一款连错误信息查看都要收费的xx和只是给DosBox换皮的xx的时候你是否开始怀念在VSCode和Visual Studio上写代码自动补全的快感了…快来看这款!!!!!MASM 汇编极致的实验套件满足你的写汇编代码的各种欲望自动补全,智能提示,语法高亮,VScode有的我都有为啥这么厉害?因为它用的编辑器的源码就是从VSCode的编辑器的爸爸:monaco编辑器改出来的。然后语法高亮的插原创 2020-07-08 19:24:57 · 5257 阅读 · 17 评论 -
8086汇编 ASCII 表
十六进制代码MCS 字符或缩写DEC 多国字符名ASCII 控制字符00NUL空字符01SOH标题起始 (Ctrl/A)02STX文本起始 (Ctrl/B)03ETX文本结束 (Ctrl/C)04EOT传输结束 (Ctrl/D)05ENQ询问 (Ctrl/E)06ACK认可 (Ctrl/F)07BEL铃 (Ctrl/G)08BS退格 (Ctrl/H)09HT水平制表栏 (Ctrl/I...原创 2020-07-05 11:29:36 · 3224 阅读 · 0 评论 -
DOS功能调用表
功能号在AH中,并设好其余的入口参数,向DOS发出INT21H命令,最后获得出口参数。调用号功能入口参数出口参数00H程序终止CS=PSP段地址01H键盘输入字符AL=输入的字符02H显示输出DL=显示的字符03H串行设备输入AL=输入的字符04H串行设备输出DL=输出的字符05H打印输出DL=输出的字符06H直接控制台I/ODL=0FFH(输入请求) DL=字符(输出请求)AL=输入的字符07H原创 2020-07-05 11:21:15 · 895 阅读 · 0 评论 -
DOS软中断表
中断功能入口参数出口参数INT20程序正常退出CS=PSP段地址INT21系统功能调用AH=功能号INT22程序结束处理INT23Ctrl-Break处理AL=0(忽略)INT24严重错误处理AL=驱动器号AL=1(重试) AL=2(通过INT 23H终止) Cy=1出错INT25绝对磁盘读CX=读入扇区数 DX=起始逻辑扇区数 DS:BX=缓冲区地址 AL=驱动器号Cy=0正确INT26绝对磁盘写CX=写盘...原创 2020-07-05 11:20:20 · 601 阅读 · 0 评论 -
8086汇编指令大全 处理器控制类
处理器控制类类型汇编指令格式功 能操作数说明时钟周期数字节数处理器控制类CBW(AL)符号扩展到(AH)21CBD(AX)符号扩展到(DX)51CLCCF清021CMCCF取反21STCCF置121CLDDF清021STDDF置121CLIIF清021STIIF置121NOP空操作31HLT停机2原创 2020-07-05 10:52:11 · 623 阅读 · 0 评论 -
8086汇编指令大全 串操作类型
串操作类型类型汇编指令格式功 能操作数说明时钟周期数字节数串 操 作 类MOVSB MOVSW((DI)) ← ((SI)) (SI) ← (SI)±1, (DI) ← (DI)±1 ((DI)) ← ((SI)) (SI) ← (SI)±2, (DI) ← (DI)±2不重复:18 重复:9+17/rep 不重复:18 重复:9+17/rep1 1STOSB STOSW((DI)) ← (AL) (DI) ← (DI)±1 ((DI)) ←原创 2020-07-05 10:51:22 · 516 阅读 · 0 评论 -
8086汇编指令大全 控制转移类型
控制转移类型类型汇编指令格式功 能操作数说明时钟周期数字节数控制转移类JMP SHORT op1 JMP NEAR PTR op1 JMP FAR PTR op1 JMP WORD PTR op1 JMP DWORD PTR op1无条件转移reg mem15 15 15 11 18+EA 24+EA2 3 5 2 2 ~ 4 2 ~ 4JZ/JE op1ZF=1则转移16/42JNZ/JNE op1ZF=0则转移16/4原创 2020-07-05 10:50:36 · 473 阅读 · 0 评论 -
8086汇编指令大全 逻辑运算类型
逻辑运算类型类型汇编指令格式功 能操作数说明时钟周期数字节数逻 辑 运 算 类AND dst, src(dst) ← (dst) ∧ (src)mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm16+EA 9+EA 3 4 17+EA 42 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3OR dst, src(dst) ← (dst) ∨ (src)mem, reg reg原创 2020-07-05 10:49:47 · 434 阅读 · 0 评论 -
8086汇编指令大全 算术运算类型
算术运算类型类型汇编指令格式功 能操作数说明时钟周期数字节数算 术 运 算 类ADD dst, src(dst) ← (src) + (dst)mem, reg reg, mem reg, reg reg, imm mem, imm acc, imm16+EA 9+EA 3 4 17+EA 42 ~ 4 2 ~ 4 2 3 ~ 4 3 ~ 6 2 ~ 3ADC dst, src(dst) ← (src) + (dst) + CFmem, r原创 2020-07-05 10:48:51 · 512 阅读 · 0 评论 -
8086汇编指令大全 数据传送类型
数据传送类型类型汇编指令格式功 能操作数说明时钟周期数字节数数 据 传 送 类MOV dst, src(dst) ← (src)mem, reg reg, mem reg, reg reg, imm mem, imm seg, reg seg, mem mem, seg reg, seg mem, acc acc, mem9+EA 8+EA 2 4 10+EA 2 8+EA 9+EA 2 10 102 ~ 4 2 ~ 4 2 2 ~ 3 3 ~ 6 2 2 ~ 4 2原创 2020-07-05 10:46:44 · 457 阅读 · 0 评论 -
用C语言的思维写汇编
【&】汇编代码模板在C语言中:;//常量数据;//函数int main{//逻辑代码和运行中的变量数据return 0;}在汇编中:data segment ;//常量数据 data endscode segment assume cs:code,ds:datamain: ;//逻辑代码和运行中变量数据 mov ax,4c00hint 21h ;//函数 code endsend main【&】定原创 2020-06-22 21:48:18 · 671 阅读 · 0 评论 -
汇编语言:易错总结
【&】复制字增加偏移数值为2巨坑!!!!假如我们有数据:mem dw 1,2,3,4,5现在我们需要把字复制到ax里面假如我们用以下错误的写法:mov ax,ds:[mem+si] inc si因为在内存里面的组织形式:0100 0200 0300 0400al ah在寄存器查看的形式:ax=ahal我们需要偏移两次mov ax,ds:[mem+si] a...原创 2020-06-22 21:47:42 · 549 阅读 · 0 评论 -
汇编语言基础从零开始详解【第一话】
汇编发展至今,有两类指令组成:真汇编指令:这些是真指令,每一个都有对应的机器码;伪指令:由汇编编译器翻译成多条真指令,并没有真实对应的机器指令;实验环境配置:汇编语言基础从零开始详解【第零话】汇编实验环境配置1. 寄存器CPU是核心,使用汇编就相当于再软件层面控制CPU,如果想让CPU工作你就必须给他提供指令和数据,指令和数据都放在存储器(内存)里面。在我们看来,指令和数据有着区别,但在...原创 2020-06-22 21:47:19 · 854 阅读 · 0 评论 -
MASM汇编入门:寄存器数据的使用
寄存器组数据(X)寄存器组寄存器名称全称作用大小AXAccumulator算术运算BXBase基址寄存器CXCount用于循环计数器DXData在双字长运算时把DX和AX组合一起存放一个双字长的数段(S)寄存器组寄存器名称全称作用大小CSCode代码区的段地址DSData程序数据区...原创 2020-06-22 21:47:00 · 1447 阅读 · 0 评论 -
汇编语言基础笔记【必修表】
本文是16位CPU的汇编语法,用于汇编语言基础知识的学习,实验环境配置参考:【&】 段前缀ds是段寄存器,后面的偏移地址用寄存器或者数字表示。ds:[bx]当(ds)=10000h,(bx)=1200h,那么ds:[bx]=1001200h【&】 栈访问我们在CPU里面这样的逻辑过程:先进先出我们设置栈寄存器的原因是方便我们对栈空间地址的管理和访问,并非用于储存栈...原创 2020-04-16 10:59:08 · 1323 阅读 · 0 评论 -
从汇编的角度看C++函数的参数传入
在初学C语言的时候,我们一定碰到过这样的小坑:void swap(int a,int b){ int tmp=a; a=b; b=tmp;}int main(){int a,b=3,5;swap(a,b);//No exchanged: a=3,b=5}懵懂的我们会有这样的疑问:为什么在swap里面a和b没有真正的交换呢?后来,我们都学会了如果想要参数得到改变要这样写...原创 2020-04-15 11:12:18 · 457 阅读 · 0 评论 -
ASM CoolKits
前言刚学汇编入门,使用的IDE的是:某需要注册收费的IDE,而且UI又丑死了,实在受不了,由于习惯了Vscode优雅的编程环境,决定转移阵地到VSCode。配置步骤第一步安装vscode插件:第二步:由于vscode只是提供了一个编辑器的环境,我们在编译的时候仍然需要Dosbox+Masm。鉴于win10下debug模式不能直接使用,我们需要以下环境:MASM+DEBUG+LINK......原创 2020-03-05 18:46:57 · 5502 阅读 · 21 评论