- 博客(7)
- 收藏
- 关注
原创 x86学习笔记P5--递归调用与堆栈传参
一、递归调用首先完成X86的递归设计,先完成一个简单的例子N!先使用AX作为返回值的方式完成递归函数的设计,即F(N) = N ? F(N - 1) X N : 1可以完成以下代码CALCULATE PROC PUSH BP MOV BP,SP PUSH DX PUSH BX MOV BX,[BP + 4] CMP BX,0 JNZ ...
2018-05-22 00:47:28
785
原创 X86学习笔记P4--函数表
之前已经完成了X86的基本编程与串操作编程,此次作业是完成完成X86函数的初步调用,并完成一个函数指针数组,使用函数表进行相关的函数调用。一、进制转换与乘除运算此次完成一个集合程序,将十六进制转为十进制,十进制转十六进制,二进制转十进制和乘除运算作为函数可供主程序循环调用,并将这些子程序集合在一个函数指针数组内。这些函数都不难完成,现在只需要在数据段中进行设置即可将他们映射到函数表里首先需要在数据...
2018-05-21 22:43:05
460
原创 X86汇编学习笔记P3--串操作
前面已经通过动手实现冒泡排序和大数乘法熟悉了X86的基本编程,此次作业则完成串处理相关操作。本次主要实现四个程序:拷贝字符串、字符串的查找与替换、字符串的大小写转换、字符串的字典序排序一、字符串拷贝程序实现的功能是实现strcpy函数,我们很容易能够使用高级语言实现,用汇编则比较繁复。我们使用LODSB STOSB命令来完成字符串的拷贝,同高级语言,我们仍然要考虑字符串重叠的问题,那么就必须...
2018-05-21 00:16:25
857
原创 X86汇编学习笔记P2--32位乘法
原有的乘法指令是8位乘法或16位乘法,对于32位的大数乘法还是要自己去实现的。其实思路也不难,类比考虑两位数十进制乘法:(10A + B) X (10C + D) = 100 AC + 10BC + 10 AD + BD 那么我们要实现的就是四次16进制的乘法和将其结果相加: 目标为NUM_A: NUM_B X NUM_C :NUM_D -...
2018-05-20 22:22:51
3156
原创 X86汇编学习笔记P1--基础程序设计
第一个程序设计实现对DATA区中的内存进行大小排序,并按照16进制将结果输出此程序则主要实现一个冒泡排序算法:STACK SEGMENT PARA STACKSTACK_AREA DW 100H DUP(0)STACK_BTM EQU $ - STACK_AREASTACK ENDSDATA SEGMENT PARATABLE_LEN DW 20TABLE ...
2018-05-20 22:02:20
447
原创 X86汇编学习笔记P0--环境配置与搭建
近期因为忙于冯如杯以及一些琐事,选的x86汇编课程欠下了一堆作业,也打算趁着这点时间恶补功课,顺便把学习过程记录下来,作为凭证。 老师推荐我们使用DOSBOX,搭建DOS虚拟环境,并使用一些必备编辑工具:MASM.EXE、LINK.EXE、DEBUG.EXE进行开发调试,这也是最优的环境选择。相关配置方法网上随处可见,这里就补充几点可操作的地方吧。 ...
2018-05-20 21:51:29
525
原创 windos&unbuntu双系统误格式化系统盘的恢复操作
几个月前的事情了,虽然具体细节回忆不太清楚,我觉着有必要再记录下,方便帮助其他人解决相同的麻烦。我一直用的win10与ubuntu的双系统,几个月前,自己听信其他博客,没有设置好开机启动项,就格式化了ubuntu系统盘。然后血崩,grub开机启动项根本没有设置好就盲目地格式化了ubuntu系统,导致开机时原有引导找不到指定系统,一直卡死,grub无法工作,连原本的windows也用不了。现在在网上...
2018-02-16 23:52:34
682
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人