• 2024-07-02go汇编调试方法
    plan9基本知识:首先我们学习如何用vscode+delve来调试go的plan9汇编代码.首先我们用vscode配置好go的运行环境.能正确打印helloworld代码.编写代码://main.gopackagemainfuncmain(){ varaaa=Sum(2,4) print(aaa)}funcSum(x,yint)int//add.sTEXT·Sum(
  • 2024-06-24A15 汇编启动阶段-BSP
    MSRCPSR_c,#Mode_SVC|I_Bit|F_Bit //SVCmode //setupvectormode /*BIT[13]: 0:选择低端异常中断向量0x0~0x1c 1:选择高端异常中断向量0xffff0000~0xffff001c*/ MRC p15,0,r0,c1,c0,0 //ReadControlRegister BIC r0,r0,#(1<<13) //u
  • 2024-06-19Excel和Word等工具小技能分享汇编(一)
    这里汇集刘小生前期微信公众号分享的Excel和Word等工具小技能,为方便大家查看学习,刘小生对其进行分类整理,后期也会不定期整理更新,如有想学习交流或其他小技巧需求,欢迎留言,我们一起学习进步!如喜欢也可以关注刘小生微信公众号!一、Excel小技能汇编1、拆分和合并表格Excel如果
  • 2024-06-12这个地方的程序员太闲了,写了三个世界流行的操作系统!
    Andreas开发宁静OS则是为了逃离毒瘾,VilleM.Turjanmaa用汇编写MenuetOS,是因为汇编性能高。他发现Linux中那些C/C++写的组件用汇编重写时,性能可以提升10%~40%,于是就开始重写了。世界上有个地方,这里的程序员似乎特别闲,特别喜欢开发操作系统。这个地方就是北欧。1991年,芬兰的
  • 2024-06-09常见汇编指令
    下面是一些包含汇编指令MOV、PUSH、POP、LEA、LDS、ADD、ADC、INC、SUB、SBB、DEC、CMP、MUL、DIV、AND、OR、XOR、NOT、TEST、SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR、LODS、MOVS的例题。这些例题展示了每条指令的用法及其作用。1.MOV指令MOVAX,BX;将寄存器
  • 2024-06-09汇编:头文件
    汇编头文件(headerfiles)在汇编语言编程中类似于高层语言中的头文件,它们通常包含宏定义、常量定义、数据结构定义、函数声明以及其他在多个汇编源文件中共享的代码;使用头文件可以提高代码的可维护性和可读性,并使代码更加模块化,最常见的汇编头文件扩展名.inc,表示包含文件(include
  • 2024-06-058086 汇编笔记(十):标志寄存器
    前言一、ZF标志ZeroFlag,零标记位。用于记录相关指令执行后,其结果是否为0。如果结果为0,则ZF=1,如果结果非0,则ZF=0 movax,1subax,1;ZF=1movax,2subax,1;ZF=0二、PF标志ParityFlag,奇偶标记位。它用于记录相关指令执行后,其结果的所有bit位中1的个
  • 2024-06-04visual studio 2019 c++与汇编混合代码
    1、visualstudio2019下x64架构的CPU配置不支持内联汇编代码的嵌入,即不支持__asm{}语句。2、通过创建.asm汇编代码文件封装汇编函数的方式实现c++代码调用汇编函数:第一步:修改工程的生成依赖项第二步:创建.asm汇编代码文件第三步:编写汇编代码的函数第四步:在c++文件调用汇编函
  • 2024-06-018086 汇编笔记(五):包含多个段的程序
    一、在代码段中使用数据“dw”的含义是定义字型数据dw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hcodesegmentdw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hmovbx,0movax,0movcx,8s:addaxcs:[bx]addbx,2loops
  • 2024-06-01汇编:调用Win32 API
    在32位汇编程序中使用Win32API是很常见的,特别是在开发Windows应用程序时调用的频率很高,Win32API提供了访问Windows操作系统功能的接口,包括窗口、消息处理、文件操作、网络通信等等。以下是使用Win32API的一般步骤:包含头文件:包含所需的Win32API头文件,以便在汇
  • 2024-05-31汇编:调用C函数
    在32位汇编程序中可以调用C函数;这种做法在很多情况下是有用的,尤其是在汇编程序需要与C代码进行交互或利用C语言的库函数时。下面是一些情况下使用汇编调用C函数的常见情景:①优化性能:某些特定的任务可能用汇编语言编写更有效率,但与此同时,一些其他功能可以使用C语言的库函数来
  • 2024-05-30汇编:x86汇编环境搭建与基础框架(32位)
    32位汇编代码编写环境:VisualStudio(笔者用的版本为2017);先来说一下在VisualStudio2017中编写汇编代码的准备操作:①创建空项目②设置项目属性:平台工具集设置为VisualStudio2015(v140),因为一些库再2015版本后取消了;③为该项目生成自定义依赖项;勾选masm文件④设置汇编
  • 2024-05-25汇编:数据类型
    基本数据类型1.字节(Byte):大小:8位(1字节)表示范围:0到255(无符号),-128到127(有符号)汇编定义:DB(DefineByte)示例:定义一个字节的值myByteDB0x1A   ;定义一个字节,值为0x1AmyByte2DB'A'   ;定义一个字节,值为字符'A'的ASCII码2.字(Word):大小:16位(2字节)表示范围:0
  • 2024-05-24原子、组合与汇编
    应用程序里可以任意写SQL语句,到了数据库这层,所有的SQL语句都被做了编排。在应用层可以同步、异步的投递SQL语句:s1,s2,s3,...。混在意大利面条一样的代码里,看不到谁先执行谁后执行。在数据库层,这些语句会被编排。编排后,实际的执行时序可能是s2,25,s1,s3,s4...那么数据库层面
  • 2024-05-24原子、组合与汇编
    应用程序里可以任意写SQL语句,到了数据库这层,所有的SQL语句都被做了编排。在应用层可以同步、异步的投递SQL语句:s1,s2,s3,...。混在意大利面条一样的代码里,看不到谁先执行谁后执行。在数据库层,这些语句会被编排。编排后,实际的执行时序可能是s2,25,s1,s3,s4...那么数据库层面
  • 2024-05-24新定义RD8T36P48点亮LED--汇编
    其实汇编和C语言差不多,简单的东西用汇编挺好,中等及以上复杂度的程序还是C语言更灵活直接在keil新建好工程,选好芯片型号和下载方式,再创建一个.asm文件并添加到工程,工程创建完如图工程配置代码 ORG0000H LJMPMAIN ORG0100HMAIN: MOVA,9AH ORLA,#20H;让P05为
  • 2024-05-15汇编指令大全
    8080汇编手册数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。通用数据传送指令MOV传送字或字节。MOVSX先符号扩展,再传送。MOVZX先零扩展,再传送。PUSH把字压入堆栈。POP把字弹出堆栈。PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈。POPA把DI,SI,BP,S
  • 2024-05-13win32下汇编代码结构学习
    通常win32下三种不同的调用模式,不同版本的编译器,对汇编出来的代码都会代理一些差别。__cdecl是默认的方式,采用外平栈。__stdcall,采用内平栈。__fastcall,因为采用2个寄存器传参,所以多于2个参数后也会用外平栈的方式。传入的第一个参数位置在ebp+8,后面依次加4个字节,即第n个参数的
  • 2024-05-13x64汇编——汇编指令
     汇编指令 movdest,srcmovmove的简称将src的内容赋值给dest,类似于dest=src[地址值]中扩号[]里面放的都是内存地址一个变量的地址值,是它所有字节地址中的最小值word是2字节,dword是4字节(doubleword),qword是8字节(quadword)  注意地址取值是向高位扩展,如
  • 2024-05-0909. C语言内嵌汇编代码
    C语言函数内可以自定义一段汇编代码,在GCC编译器中使用asm或__asm__关键词定义一段汇编代码,并可选添加volatile关键字,表示不要让编译器优化这段汇编代码。内嵌汇编代码格式如下:__asm__(  "汇编代码"  :输出描述  :输入描述  :修改描述);汇编代码部分
  • 2024-05-05汇编及调试
    gcc:-c编译后汇编,不连接-S生成.s汇编文件-o编译,汇编,连接,可从.o/.c文件直接生成可执行程序-g生成调试信息-gstabs    -static静态链接标识符maingdbbreak*标识符:设置断点inforegister:参看寄存器run:运行
  • 2024-05-058086 汇编学习 Part 9
    端口的读写CPU的邻居CPU内部的寄存器内存单元端口(各种接口卡、网卡,显卡,主板上的接口芯片等)各种芯片工作时,都有一些寄存器由CPU读写从CPU角度,将各寄存器当端口,并统一编制CPU用统一的方法与各种设备通信读写端口的指令在对\([0,255]\)的端口进行读写时,端口
  • 2024-05-04内联函数、引用、汇编
    内联函数内联函数是一种特殊的C++函数,编译器会将它的代码直接插入到调用它的位置,而不是像普通函数那样进行函数调用。这可以减少函数调用的开销,从而提高性能。#include<iostream>usingnamespacestd;intfunc(intv1,intv2){ returnv1+v2;}inlineintfunc1
  • 2024-05-04C语言转写成MIPS指令集汇编以及MIPS指令集汇编中函数调用时栈的变化
    一、问候语欢迎你来到我的博客!二、C语言代码分析  这段C语言代码共有3个函数组成。set_array函数传入1个int类型的变量num,并创建了1个int类型临时变量i和1个临时int类型数组array,里面含有10个单位,此函数主要目的是调用compare函数,并将num和i传入该函数中,得到其函数返回值
  • 2024-05-038086 汇编学习 Part 6
    用MUL指令做乘法格式MUL寄存器MUL寄存单元8位乘法16位乘法被乘数(默认)ALAX乘数8位寄存器或内存单元16位寄存器或内存字单元结果AXDX(高位)和AX(低位)模块化程序设计调用子程序:CALL指令返回:RET指令实质流程转移指令,它们都修改