16位汇编笔记

8086汇编(16位汇编)学习笔记01.汇编基础和debug使用 ● 一个系统不可能由一个硬件单独完成,所以划分处多个硬件模块,然后由一个模块居中调度。称作CPU。.标志位标志名称FLASETUREOF溢出标志NVOVDF方向标志UPDNIF中断标志DIEISF符号标志PLNGZF零标志NZZRAF辅助进位标志NAACPF奇偶标志POPECF进位标志NCCY在 debug中顺序OF[溢出 ] DF[方向] IF[中断] SF[符号] ZF[零] AF[辅助进位] PF[奇偶] CF[进位] 阅读详情

1、子函数中进行现场保护时,不能把返回值所存放的寄存器(绝对不可以)入栈,只是被访问而没有被修改的寄存器也不需要入栈。


      子函数的参数尽量入栈,因为如果后面的子函数再次使用这些参数时,需要确保参数没有变动;


2、开机CPU加电后,初始化CS=0FFFFH,IP=0。FFFFH:0处有一条跳转指令,跳转至BIOS中硬件系统检测和初始化程序处。


      初始化程序建立BIOS中断例程的中断向量表,不进行中断例程的安装,因为BIOS的中断例程是固化在ROM中的。


硬件系统检测和初始化程序完成后,调用int 19h中断,引导DOS的启动。


      DOS启动后,进行中断例程的安装,并建立相应的中断向量表。(引用自王爽老师的《汇编语言》第二版)


3、push cs,pop ds指令可以用来把cs的值赋给ds,push byte ptr [si],pop byte ptr es:[di],指令可以把ds:si内存单元的内容存入es:di

学习16位DOS汇编笔记 ax       //是16位的寄存器,最大可以存65535 ah,al  //是8位的寄存器,最大可以存255 cs:ip  //指向程序下一条执行的指令 ds     //数据段寄存器 ss     //栈段寄存器 sp     //栈顶指针 物理地址=段地址*16(十进制)+偏移地址 物理地址=段地址*10(十六进制)+偏移地址 物理地址20030 段地址2000 偏 阅读详情

相关推荐

8086汇编(16位汇编)学习笔记09.宏汇编

宏汇编在文件中是当做关键字的,但是在bug中运行时并没有这些指令,这些关键词被称为伪指令,cpu并不认识他们,需要经过编译器转化成 cpu认识的代码,但是他多我们写代码帮助又很大表达式表达式中的求值是在程序链接时完成的,所以表达式中的各值必须是在汇编或链接期就能确定,也就是 说不能将寄存器或者变量运⽤于表达式。算术表达式逻辑运算符逻辑运算即位运算,逻辑运算符与对应的指令助记符单词是相同的,当它们出现在操作码部分时是指 令,出现在操作数时是逻辑运算符关系运算符。

彭于晏长沙分晏 1465

X86汇编详解

80x86指令系统 80x86指令系统,指令按功能可分为以下七个部分。 (1) 数据传送指令。 (2) 算术运算指令。 (3) 逻辑运算指令。 (4) 串操作指令。 (5) 控制转移指令。 (6) 处理器控制指令。 (7) 保护方式指令。   3.3.1数据传送指令 数据传送指令包括:通用数据传送指令、地址传送指令、标志寄存器传送指令、符号扩展指令、...

weixin_33953249的博客 701

科锐16位汇编学习笔记 03 汇编指令

7 已知SI=1200H,DS:[1205H]=1234H,试说明指令MOV BX,5[SI]和LEA BX,5[SI]的区别,执行后BX的内容分别是多少?将值改成 FF 即 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 可以看出,所有标志位都变成了1。​ •SF/ZF/AF/PF/CF状态标志位分别送入AH的第7/6/4/2/0位,而AH的第5/3/1位任意。LEA BX,5[SI] 是将 si+ 5 = 1025 的值 给 BX ,此时 BX 的值位 1025。

彭于晏长沙分晏 2146

汇编中的PTR含义/用法

2011-03-03 17:11:34|  分类: 汇编 |  标签:ptr  字节  寄存器  bx  word  |举报|字号 订阅      ptr -- pointer (既指针)得缩写。      汇编里面 ptr 是规定 的 字 (既保留字),是用来临时指定类型的。   (可以理解为,ptr是临时的类型转换,相当于C语言中的强制类型转换) 如 mov a

万里晴空 5万+

8086汇编(16位汇编)学习笔记02.分段,机器码和寻址

原文链接:8086汇编(16位汇编)学习笔记02.分段,机器码和寻址-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net[md]### 分段 - 问题1 8086是16位cpu,最多可以访问(寻址)多大内存?- 运算器一次最多处理16位的数据。- 地址寄存器的最大宽度为16位。- 访问的最大内 ...,C/C++基础,断点社区-专业的老牌游戏安全技术交流社区。

彭于晏长沙分晏 1198

8086汇编(16位汇编)学习笔记03.汇编指令

7 已知SI=1200H,DS:[1205H]=1234H,试说明指令MOV BX,5[SI]和LEA BX,5[SI]的区别,执行后BX的内容分别是多少?MOV BX,5[SI] 是将 DS最为段基址 , si+ 5 = 1025 作为段偏移 处的值 1234 给 BX ,此时 BX 值 是 1234。将值改成 FF 即 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 可以看出,所有标志位都变成了1。mem←mem+imm/reg //把结果存入内存,内存不可以与内存相加。

彭于晏长沙分晏 1410

【汇编语言】16位汇编总结

16位汇编语言总结

weixin_42659457的博客 2017

8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全

8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net[md]启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。Debug [[drive:][path] filename [parameters]]  参数  [drive:][path] filename  指 ...,汇编,学习笔记,8086,16位汇编,C/C++基础,断点社区-专业的老牌游戏安全技术交流社区。

彭于晏长沙分晏 1306

16位汇编语言学习笔记(1)——基础知识

文章目录1.配置汇编学习环境1.1 工具下载1.2 配置环境2. 汇编命令基础2.1 简单使用2.2 常用命令3. 汇编语言基础3.1 汇编语言程序与汇编程序3.2 汇编语言程序的格式和组成元素3.3 伪指令3.3.1 符号定义伪指令3.3.2 变量定义伪指令3.3.3 段定义伪指令3.3.4 过程定义伪指令3.3.5 指令集选择伪指令3.4 指令系统3.4.1 数据传送指令通用数据传送指令累加器专用传送指令地址传送指令标志传送指令3.4.2 算数运算指令二进制算数运算指令加法指令减法指令乘法指令除法指令十

zyw2002的博客 3806

8086汇编(16位汇编)学习笔记06.串操作、流程转移指令

从表格中我们不难分析出来 EB 代表 jmp 指令 ,其机器码中并没有直接存储 目标地址的 ip信息 ,也不是直接存储偏移,而是地址偏移值 - 2 , 即 下一条指令 到 目标地址的偏移,那为什么不存储本条指令地址和目的地址的偏移,而要存下一条的呢,因为当一条指令执行完,IP地址就指向了下一条指令的ip地址,如果要储存自己和目标指令的偏移,需要先 - 2 ,把ip地址 改回当前自己的,再去算偏移,所以就直接存储 下条指令的 ip 地址 和目标地址的偏移。上面是考虑的是 从上往下跳,如果从下往上跳呢。

彭于晏长沙分晏 1549

8086汇编(16位汇编)学习笔记04.乘除和移位指令

SAL:把目的操作数的低位向高位移,空出的低位补0,移出来的最后一位 进 CF;SAR:把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补,移出来的最后一位 进 CF。可用于有符号位除法(除 2 的 n次幂)

彭于晏长沙分晏 1570

8086(16位)汇编指令与机器码转换原理

在上一节,我们讲了X86指令基本格式。在8086架构下,是不存在SIB字节的,因此,我们重点关注ModR/M。

百里杨的博客 6597

科锐16位汇编学习笔记 04 乘除和移位指令

SAL:把目的操作数的低位向高位移,空出的低位补0,移出来的最后一位 进 CF;SAR:把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补,移出来的最后一位 进 CF。可用于有符号位除法(除 2 的 n次幂)

彭于晏长沙分晏 1702

16位汇编学习笔记(一)——基础知识

基础知识总结预备知识基础知识部分16位汇编语言学习环境:寄存器寻址方式汇编指令: 预备知识 一,思想+数学;程序 = 数据结构 + 算法 二,计算机的硬件组成 三,数据的表示方法:进制,数据宽度,有符号数和无符号数,原码反码补码 四,逻辑运算: NOT AND OR XOR 左移, 右移 五,编码规则:ASCII, BCD, 键盘扫描码 基础知识部分 16位汇编语言学习环境: MASM, DEBU...

qq_45554268的博客 530

科锐16位汇编学习笔记01汇编基础和debug使用

1. 一个硬件系统都有什么?● 一个系统不可能由一个硬件单独完成,所以划分处多个硬件模块,然后由一个模块居中调度。称作CPU。2. CPU如何与其他硬件做交互?● I/O桥 所有的硬件模块连接到I/O桥,由I/O桥负责辅助cpu与哪一个硬件模块连接。● 总线3. cpu如何去选择不同的硬件模块?● 位多路复用器CPU:一个系统不可能由一个硬件单独完成,所以划分多个硬件模块,然后由一个硬件模块居中调度cpu的主要工作:1.算术运算;2.读写,即从一个硬件中读写至另一个硬件中。

彭于晏长沙分晏 1746

64位机运行16位汇编的方法

64位机运行16位汇编的方法

16位汇编笔记7-11

16位汇编笔记7-11 文章目录16位汇编笔记7-117.定位内存地址7.1 and & or7.3 字符数据7.5 [bx+idata]7.8 [bx+si]和[bx+di]7.9 [bx+si+idata]和[bx+di+idata]7.10 应用8 数据处理的两个基本问题8.1 bx,bp,si,di8.2 数据位置8.3寻址方式8.4 处理数据长度8.5 除法指令div8.6 伪...

Starr 853

16位汇编集成开发环境(绿色免安装)

我用过的最好的16位汇编编译软件,是以前别人用scite做的,现在网上好像搜不到,拿出来跟大家分享,对于自己学习DOS环境下汇编知识有很大帮助。 *解压可用免安装。 *可以分步调试,清楚的观察到所有寄存器和标志位的变化。可下断点,极大的方便调试,而不需手动debug。跟高级语言的集成开发环境一样。 *关键字高亮显示,支持c、c++语法。

上一篇: 标志寄存器
下一篇: 《加密与解密》--基础篇学习笔记
R00cky
博客等级 码龄12年 5粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值