![](https://img-blog.csdnimg.cn/20201121094451607.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
汇编语言--王爽
大家一起学习汇编语言吧
来lai
此人很懒,什么都没有写
展开
-
【笔记总结】汇编语言--王爽
文章目录 一、基础知识1、指令2、存储器3、总线1、总线2、CPU对存储器的读写3、CPU对外设的控制 4、内存地址空间 二、寄存器1、寄存器2、通用寄存器3、8086CPU给出物理地址的方法4、段寄存器1、CS和IP2、DS 和 [address]3、SS 和 SP 三、第一个程序1、汇编程序从写出到执行的过程2、程序执行过程跟踪 四、[bx] 和 loop指令1、[bx] 和 loop指令2、段前缀 五、包含多个段的程序六、更灵活的定位内存地址的方法1、and 和 or..转载 2020-12-14 15:03:45 · 885 阅读 · 0 评论 -
CALL和RET
一、ret和retfret:只修改IP内容,实现近转移pop IPretf:修改CS和IP内容,实现远转移pop IPpop CS二、callcallpush IPjmp near ptr 标号call far ptr 标号push CSpush IPjmp far ptr 标号原创 2020-12-14 19:31:51 · 82 阅读 · 0 评论 -
汇编的段内、段间转移
1、段内转移:只修改IP;短转移:ip修改范围:-128-127 ,格式:jmp short 标号近转移:ip修改范围:-32768-32767,格式:jmp near ptr 标号直接转移的形式是: jmp near ptr 标号间接转移的形式是: jmp word ptr 寄存器或内存单元2、段间转移:同时修改CS、IP;又叫远转移。直接转移的形式是: jmp far ptr 标号间接转移的形式是: jmp dword ptr 内存单元3、无条件转移:jmp4、条件转移:jcxz;所原创 2020-12-14 19:31:19 · 4300 阅读 · 0 评论 -
汇编中的栈(push、pop)
在学习汇编的时候,pop和push很重要;下面说说简单的见解。(栈:先进先出)push [0]: 将[0]的单元内容压入栈底。pop [E]: 将栈顶的内容弹出赋给[E]单元。例:(1)补全下面的程序,使其可以将 10000H~1000FH 中的8个字,逆序复制到 20000H~2000FH中。方法一:用push的方式,让右边为栈.SS:SP指向栈底2000:10Hmov ax,1000Hmov ds,axmov ax,2000Hmov ss,axmov sp,0010Hpu原创 2020-12-14 17:11:58 · 7967 阅读 · 0 评论 -
指令由多少字节组成?
在debug中可以查看。比如add指令多少字节,就看左边红框," 83C406 " 这个代表3个字节。2位数字表示一个字节,这里是16进制的。注意:1字节=8位 二进制数 (1111 1111)1字节=2位 十六进制数(F F)...原创 2020-11-15 13:15:22 · 3537 阅读 · 0 评论 -
汇编语言检测2.2
题目:分析:特别注意后面的SA=1000H时,最大寻址只有1FFFFH,无法找到20000H。所以SA要加1,SA=1001H,这样就可找到20000H,因为1001H*10H + FFFFH =20000H原创 2020-11-15 12:57:30 · 139 阅读 · 1 评论 -
段地址寄存器、偏移地址寄存器
1. 数据寄存器:AX,BX,CX,DX2. 地址寄存器,看图找规律原创 2020-11-15 12:43:19 · 2864 阅读 · 0 评论 -
汇编语言的加法超过寄存器的最大值会怎样?
先判断是多少位运算,根据add 后面的al还是ax寄存器,al是8位,ax是16位。第一个红框,是8位运算,93H+85H=118H,结果已经超过了8位寄存器最大值FF,所以ax中只保存后两位数0018H第二个红框,是16位运算,所以ax中保存0118H....原创 2020-11-15 12:23:24 · 1241 阅读 · 0 评论 -
DOSbox设置默认打开路径
先打开dosbox软件,根据红框的路径打开.conf文件在文件后面最后那里添加两行命令这个g:\asm是你的debug文件路径,根据自己实际修改即可,下次打开dosbox就会自动输入这两行命令。mount c: g:\asmc:...原创 2020-11-14 20:08:40 · 1996 阅读 · 1 评论