汇编
汇编学习记录
诗水人间
要想走的更远,就需要思考更深层次的问题。冷静、智慧、深沉是我所向往的
展开
-
汇编条件转移
条件转移的前面都会有一句cmp ax,条件值例如:然后就是下面的je等指令进行判断跳转JE ;等于则跳转JNE ;不等于则跳转 JZ ;为 0 则跳转JNZ ;不为 0 则跳转 JS ;为负则跳转JNS ;不为负则跳转 JC ;进位则跳转JNC ;不进位则跳转 JO ;溢出则跳转JNO ;不溢出则跳转 JA ;...原创 2020-04-30 14:19:49 · 151216 阅读 · 0 评论 -
DEBUG程序-r命令查看标志寄存器内容
DEBUG程序-r查看标志寄存器内容标志寄存器状态:① 溢出标志OF(Over flow flag) OV(1) NV(0)② 方向标志DF(Direction flag) DN(1) UP(0)③ 中断标志IF(Interrupt flag) EI(1) DI(0)④ 符号标志SF(Sign flag) NG(1) PL(0)⑤ 零标志ZF(Zero flag) ZR(1)...转载 2020-03-18 02:46:44 · 130623 阅读 · 0 评论 -
一个段有N个字节,该段实际占有空间为16*(N/16 + 1)个字节,超通俗易懂方式解答
在做到这个题目时,一开始对答案这个公式相当怀疑。的确这个公式其实不是正确的。网上的答案是这样解释的:https://www.cnblogs.com/zhouie/p/10702606.html我相信有很多同学第一次 没看懂最后一步的公式怎么来的。即使前面全部看懂了,可最后一步公式还是不知道怎么回事。通俗的说:cpu实际分配内存空间是一段一段的分配,不会连续的分配!也就说是每次...原创 2020-03-18 01:13:11 · 135293 阅读 · 1 评论 -
栈
获取一个栈:分配一段连续的空间,将ss指向栈顶的段地址、sp存放栈顶的偏移地址push入栈例如 push ax 将ax的值压入栈中,sp+2偏移地址+2,然后将ax的值存放到 [ss:sp]所指向的内存单元中pop出栈例如pop ax 将栈顶元素的值存到ax寄存器中。会先取出栈顶元素,然后执行 sp-2。栈在内存中的表示:...原创 2020-03-17 23:19:08 · 133787 阅读 · 0 评论 -
dw、db、dd
dw 指 define worddb 指define bytedd 指define dworddb是一个字节单元。占8位dw是两个字节单元。占16位dd是四个字节单元。占32位原创 2020-03-17 22:46:41 · 128596 阅读 · 0 评论 -
mov ah,4ch int 21的作用
int表示中断的含义。mov ah,4chint 21h表示,执行中断指令4c (查下面的表格可知 带返回码结束程序)AH是ax的高位 AH 功能 调用参数 返回参数 00 程序终止(同INT 20H) CS=程序段前缀 ...翻译 2020-03-13 03:05:12 · 163864 阅读 · 1 评论 -
汇编中数据不能以字母开头!字母开头前面加0
如题如果在源码中的数据是以字母开头的数据,则编译器会报错例如如下代码,执行编译assume cs:codecode segmentstart: mov ax,ffffHcode endsend start执行编译会有如下报错:因此会在ffffh前面加个零,变成0ffffh然后编译就不会报错...原创 2020-03-13 02:24:34 · 117440 阅读 · 2 评论 -
bx的作用
bx 基址寄存器(BaseRegister简写)bx在哪里使用呢?在debug模式的时候我们常常会看到 mov ax,[0]这样的命令,意思是将数据段偏移地址为0的数据赋值给ax但是在我们的asm源程序如果写成mov ax,[0]如果编译生成exe文件后,进入debug模式通过u命令查看汇编指令会发现debug模式中会变成mov ax,0 而不是 mov ax,[0]这样命令...原创 2020-03-13 02:05:26 · 126438 阅读 · 0 评论 -
loop循环与cx
例题:计算2的12次方assume cs:codecode segmentstart: mov ax,2 mov cx,11s: add ax,ax loop s mov ax,4c00h int 21hcode endsend startcx 是程序计数器(countRegister的简写)执行loop循环的时候会先将cx-1,并且判断cx是否等于0,等于0则结束循...原创 2020-03-13 01:51:11 · 132112 阅读 · 0 评论 -
第一个汇编程序实验一
环境部分看这篇博客:https://blog.csdn.net/qq_41813208/article/details/104418974总共用到了masm编译程序、link链接程序、debug调试程序,反编译汇编程序源码 1.asmassume cs:codesg codesg segment MOV AX,4E20H ADD AX,1416H MOV ...原创 2020-03-11 05:51:36 · 129508 阅读 · 0 评论 -
debug常用指令
r 命令 查看/改变 cpu寄存器内容d 命令 查看内存中的内容e 命令 修改内存中的内容 (机器指令的格式修改)u 命令 将内存中的机器指令转化成汇编指令t 命令 执行一天机器指令a 命令 以汇编的格式写入指令到内存中quit 命令退出debug...原创 2020-02-21 00:23:59 · 115570 阅读 · 0 评论 -
windows10安装Dosbox使用debug模式(汇编)
链接: https://pan.baidu.com/s/1iI42N13HDOsAFohCJ6XYfA 提取码: z21p 下载dosbox虚拟机安装包以及debug.exe文件下载后安装dosbox 如下 将masm文件夹复制到C:/根目录(文件夹内有debug.exe程序) 修改启动dosbox的配置,右键dosbox====》打开文件夹所在位置 在文本末尾添加下面的代码,即启动的...原创 2020-02-20 22:05:49 · 137504 阅读 · 8 评论