
x86汇编
文章平均质量分 65
4nc414g0n
这个作者很懒,什么都没留下…
展开
-
函数栈帧的创建和销毁(详细)
函数栈帧的创建和销毁main函数被调用的过程:具体过程main函数被调用的过程:mainCRTStartup() 调用 _tmainCRTStartup() 再调用 main()寄存器:ebp(栈底指针),esp(栈顶指针)(sp 是esp的低16位,esp是rsp的低32位,ss是16位堆栈段寄存器)了解更多:x86汇编学习历程7----从1加到100并显示(引入栈)具体过程C代码如下:#include <stdio.h>int Add(int x, int y)原创 2021-08-10 13:10:20 · 770 阅读 · 1 评论 -
x86汇编学习历程4----在屏幕上显示数字
先贴代码start: ;标号(冒号可去) mov ax, 65535 xor dx, ax ;等价于mov dx, 0(寄存器间操作更快) mov bx, 10 div bx ;ax/bx==65535/10 ax=商(65535), dx=余数(5) add dl, 0x30 ;将数字转换为对应的数字字符存到dl中 ;(此处dl是dx的低八位) mov cx, 0 ;将段地址0传送到数据段ds mov ds, cx ;不能直接原创 2021-04-29 14:01:21 · 1579 阅读 · 0 评论 -
x86汇编学习历程3----计算机寄存器分类简介及指令(转载)
计算机寄存器分类简介1:32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)**1.数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。 对低16位数据转载 2021-04-29 00:44:18 · 403 阅读 · 0 评论 -
x86汇编学习历程2----用bochs运行调试写屏程序
一.基础8086显存在内存中的结构图(8086可以访问1兆字节的内容)二.代码编写新的汇编指令编译,写入虚拟硬盘主引导扇区(代码如下)start: ;标号 mov ax, 0xb800 ;0xb800是文本模式下显存的地址 第一条指令地址的物理地址为0x7c00 mov ds, ax mov byte [0x00], 0x41 ;字符A的ASCII编码 mov byte [0x01], 0x04 ;黑底红字,无闪烁 mov byte [0x02], 's原创 2021-04-12 23:01:54 · 405 阅读 · 1 评论 -
x86汇编学习历程1----bochs
一.基础8086基础:注:截图自https://www.processon.com/view/5b2b0229e4b0d4a19d7eeaf6#map二.虚拟机安装 略三.bochs使用在botchs官网下载最新版本安装注:需要提前创建好虚拟硬盘,以下为写入虚拟硬盘主引导扇区的代码mov ax, 0x30mov dx, 0xC0add ax, dxtimes 502 db 0 ;重复此位指令‘db 0’502次db 0x55 db 0xAA双击Disk&Boo原创 2021-04-05 00:34:53 · 386 阅读 · 0 评论 -
x86汇编学习历程7----从1加到100并显示(引入栈)
新知识点栈SS:栈段段寄存器SP (stack pointer):栈指针寄存器,提供访问栈段的偏移地址注意:1)不同于代码段和数据段,栈段的扩展推进方向是向下的,从高地址向低地址推进2)由于栈段和代码段在同一块区域,为防止破坏有用数据,要充分估计需要的栈空间压栈 push(在8086处理器push操作的只能是一个字 也就是16位):执行过程: 1)SP-操作数的大小(字节数)存入到SP中 2)段寄存器SS左移4位,加上SP里的偏移地址,生成物理地址 3)将操作数写入上述地址 pu原创 2021-05-14 15:31:45 · 579 阅读 · 0 评论 -
x86汇编学习历程6----负数在计算机中的表示和应用方法(附FLAGS拓展和cmp及条件转移指令)
新知识点无符号数和有符号数一个字节所表示的无符号数: 1111 1111 255 (0xFF) 1111 1110 254 (0xFE) ... 0000 0000 0 (0x00)一个字节所表示的有符号数: 0111 1111 +127 (0x7F) ... 0000 0010 +2 (0x02) 0000 0001 +1 (0x01) 0000 0000 0 (0x00) 1111 1111 -1 (0xFF) 1111 1110 -2 (0xFE) ... 1000原创 2021-05-06 18:30:21 · 2222 阅读 · 2 评论 -
x86汇编学习历程5----更紧凑科学的显示文字和数字
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-05-04 17:13:09 · 977 阅读 · 2 评论