首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    汇编语言 手记9

    使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件 用连接程序(LINK.EXE)对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。 可执行文件中包含两部分内容: 程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据) 相关的描述信息 一个汇编程序是由多个段组成的,这些段被用来存放代码,数据活当作栈空间来使用。

    1.1K80发布于 2018-01-18
  • 来自专栏Android点滴分享

    汇编学习(9), 命令行参数,C与汇编

    本篇介绍 本篇介绍下汇编如何支持命令行函数,以及C如何调用汇编。 0x00007fffffffe254 0x7fffffffe254: "2" (gdb) x /s 0x00007fffffffe256 0x7fffffffe256: "hello" 用 C 访问汇编 接下来写一个例子,用C访问汇编实现的函数,extern 声明的函数由汇编实现,C代码如下: #include <stdio.h> #include <string.h> extern int rsurface 内联汇编 首先除非必要,尽量不用内联汇编。 内联汇编有2种,Basic Inline 和 Extended Inline。 Basic 内联需要注意的点如下: 第一行需要标明汇编类型,是ATT还是Intel,这样汇编器才会正确解析 汇编用到的参数必须定义成全局变量 如果使用的寄存器保存有关键数据,会被覆盖,这时候后果不确定,

    1K20编辑于 2022-12-19
  • 来自专栏seth-shi的专栏

    学习 Go 的 Plan 9 汇编

    刚开始入门建议先看一下这个汇编入门教程 汇编语言快速入门 汇编语言入门教程(阮一峰) 务必详细的看一下阮老师的入门教程 常见的标识符 (更多参考最后的寄存器和操作指令表格) $开头后面跟数字代表是一个常量数字 6e 74 73 0a 6d 6f 64 09 e-arguments.mod. 0x0030 73 65 74 68 09 28 64 65 76 65 6c 29 09 0a f9 SRODATA dupok size=9 0x0000 00 00 06 75 6e 73 61 66 65 ...unsafe gclocals 一般用来声明函数或全局变量 FP 栈帧指针(FramePointer) go汇编的伪寄存器。 go编译工具的使用之plan9汇编 go plan9 汇编入门,带你打通应用和底层 【 Go 夜读 】

    62511编辑于 2023-12-18
  • 来自专栏大愚Talk

    走进Golang之运行与Plan9汇编

    以及通过查阅 Golang 的 Plan9 汇编来了解Golang的一些内部秘密。 Golang的运行环境 当我们把编译后的Go代码运行起来,它会以进程的方式出现在系统中。 Go的调用实例 才开始,我们就从一个简单的函数开始来分析一下整个函数的调用过程(下面涉及到 Plan9 汇编,请别慌,大部分都能够看懂,并且我也会写注释)。 设计两个返回值主要是一起来看一下 golang 的多返回值是如何实现的。接下来我们把上面的代码对应的汇编代码展示出来。 ? Go的汇编plan9 我们整个程序的编译最终会被翻译成机器码,而汇编可以算是机器码的文本形式,他们之间可以一一对应。所以如果我们能够看懂汇编一点点就能够分析出很多实际问题。 Golang的汇编是基于 Plan9 汇编的,个人觉得要完全学懂太复杂了,因为这涉及到很多底层知识。不过如果只是要求看懂还是能够做到的。下面我们就举一些例子来试试看。

    1.3K10发布于 2019-12-04
  • 来自专栏运维开发王义杰

    Go:了解和集成使用 Plan 9 汇编语言

    1: 了解 Plan 9 汇编语言 在开始之前,我们需要了解 Go 汇编语言的基本概念。 但Plan 9 汇编语言仍然是一种低级语言,用于为 Plan 9 操作系统编写机器代码。Plan 9 是由贝尔实验室于 1980 年代中期开发的分布式操作系统。 Go 编译器使用 Plan 9 汇编语言作为一种中间表示,因为它具有以下优点: 可移植性: Plan 9 汇编语言是一种相对通用的汇编语言,可以移植到不同的 CPU 平台。 简洁性: Plan 9 汇编语言比机器码更简洁、更易读,这使得 Go 代码更容易理解和维护。 在 Go 编译过程中,Plan 9 汇编代码会被转换为对应 CPU 平台的机器码。这个过程称为 汇编。 在实际运行时,Plan 9 汇编代码会被转换为对应 CPU 平台的机器码,才能被 CPU 直接执行 2: Go 集成 Plan 9 汇编语言的意义 将汇编语言程序集成到 Go 程序对于软件的性能优化尤为重要

    1.2K11编辑于 2024-05-10
  • 来自专栏Hk_Mayfly的学习记录

    汇编语言》课程设计2

    dw offset func4-offset boot+7e00h time db 'YY/MM/DD hh:mm:ss',0 cmos db 9,8,7,4,2,0 boot + 07e00H mov bx,0 getstring: ;获取键盘输入的时间信息 mov ah,0 int 16h ;输入的时间为数字0~9 cmp al,'0' jb error_input cmp al,'9' ja error_input ;将我们输入的时间字符入栈 call char_push zhidao.baidu.com/question/564008138.html int 16的1号程序:https://zhidao.baidu.com/question/511189643.html 总结   汇编的难度并不大 ,我认为在有编程的基础上,学习汇编要做到细致,细致的理解计算机编程的编译过程,对于我理解其他编程语言也有很大的帮助。

    1.2K20发布于 2019-07-30
  • 来自专栏Hk_Mayfly的学习记录

    汇编语言》课程设计2

    db 128 dup (0) 4 stack ends 5 code segment 6 start: 7 mov ax,stack 8 mov ss,ax 9 ,0 171 getstring: 172 ;获取键盘输入的时间信息 173 mov ah,0 174 int 16h 175 176 ;输入的时间为数字0~9 177 cmp al,'0' 178 jb error_input 179 cmp al,'9' 180 ja error_input 181 ;将我们输入的时间字符入栈 zhidao.baidu.com/question/564008138.html int 16的1号程序:https://zhidao.baidu.com/question/511189643.html 总结   汇编的难度并不大 ,我认为在有编程的基础上,学习汇编要做到细致,细致的理解计算机编程的编译过程,对于我理解其他编程语言也有很大的帮助。

    1K20发布于 2019-07-30
  • 来自专栏我在本科期间写的文章

    4 汇编语言程序设计

    4 汇编语言程序设计 表达式中的运算符和操作符在 x86 汇编语言中的用法。 表达式 表达式是由常数、变量、操作符和运算符组合而成的计算公式。

    43210编辑于 2024-09-13
  • 来自专栏c++与qt学习

    汇编语言设计程序篇-03

    汇编语言设计程序篇-03 用汇编语言写的源程 用汇编语言编写程序的工作过程 程序中的三种伪指令 源程序经编译连接后变为机器码 汇编程序的结构 如何写出一个程序来? 段前缀的使用 在代码段中使用数据 应用案例 在代码段中使用栈 以数据逆序存放为例 数据逆序存放程序 在Debug中的执行结果 将数据、代码、栈放入不同 段 在Debug中执行 ---- 本系列文章参考汇编语言第四版和汇编语言程序设计 贺利坚主讲整理而成 ---- 用汇编语言写的源程序 用汇编语言编写程序的工作过程 ---- 程序中的三种伪指令 CS:IP寄存器是定位代码段位置的 ---- 源程序经编译连接后变为机器码 - --- 汇编程序的结构 在Debug中直接写入指令编写 的汇编程序 适用于功能简单、短小精悍的程序 只需要包含汇编指令即可 单独编写成源文件后再编译为可执行文件的程序 适用于编写大程序 需要包括汇编指令 由写出源程序到执行可执行文件的过程 ---- 编译 ---- 提示语法错误 ---- 连接 ---- 执行可执行程序 ---- 小结 ---- 运行及跟踪 这一节主要来看看程序加载进内存后的执行过程: 先准备一个汇编程序

    95210编辑于 2022-06-19
  • 来自专栏IC知识库平台

    RISCV 汇编语言程序设计 (1) 跑马灯设计

    本文主要介绍汇编语言程序设计中跑马灯程序的设计要求,GPIO的概念和相关硬件知识,为之后分析汇编程序做准备。 1. 跑马灯的设计: 使用汇编语言实现跑马灯。 程序设计要求: 假设系统时钟50Mhz,状态机版本RISC-V CPU约每3个时钟周期执行一条指令。 设计要求:系统中有8个LED(汇编语言代码中使用寄存器x10),在risc-v cpu 的硬件连接中, 我们将 LED[7:0] 连接到 risc-v cpu GPIO外设的A组外设寄存器[7:0], 因为LED在开发板上采用共阳极方式设计,所以FPGA管脚为低电平时LED点亮。如下图原理图中所示。 图1.

    1.6K30发布于 2021-08-02
  • 来自专栏IC知识库平台

    RISC-V 汇编语言程序设计(4)汇编语言格式及ABI

    1.汇编语言格式简介 以asm_run_seg.S为例: .equ BYTE_DELAY, 0x00100000 .equ GPIO_ADDR, 0xf0000000 .globl _start _ = x7) goto loop ADDI t3, x0, 0; # t3 = 0 汇编的指示符(directive)的格式使用“.” + 关键词 .globl(注意不是.global 在使用标号时后面跟冒号”:”,比如LOOP: ,_start: 一般汇编指令格式:指令 + 空格 + 寄存器 + “,”+寄存器 + “,” + 寄存器(或立即数),比如 ADDI t3,x0,0;。 也有部分汇编指令只接一个寄存器和立即数,格式为指令 + 空格 + 寄存器 + “,”+ 立即数,比如 LI a3,0x08; 汇编指令以分号”;”结束,常量定义以回车换行结束,没有分号”;”。

    1.8K20发布于 2021-08-03
  • 来自专栏电子工程师成长日记

    设计分享|基于单片机的计数器设计汇编

    具体实现功能 具体功能: 通过按键改变计数结果,按键按下蜂鸣器响,结合数码管进行显示,计数范围0-9。当加键按下时,数码管显示数值加一,减键按下时,数码管数值减一。 设计内容 01 仿真图 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 02 程序 本设计汇编语言编写,主代码具体如下: ORG 0000H LJMP MAIN ORG 0003H LJMP JIAYI ORG 0013H LJMP JIANYI ORG 蜂鸣器发声,表示有按键按下 NOP JNB P3.2,SHYING RETI ORG 0300H JIANYI: CLR C; ;减1中断处理程序 MOV A,#9AH

    1.2K10编辑于 2022-07-27
  • 来自专栏电子工程师成长日记

    设计分享|单片机LED点阵时钟(汇编

    :比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景; 软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。 设计内容 01 仿真实现 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 02 汇编程序 本设计汇编语言编写,主代码具体如下: ORG 0000H LJMP MAIN ORG 0003H LJMP PINT0 ORG 000BH DB 00H,3CH,28H,08H,10H,10H,10H,00H ;8 DB 00H,18H,24H,18H,24H,24H,18H,00H ;9

    1.1K10编辑于 2022-07-27
  • 来自专栏IC知识库平台

    RISC-V 汇编语言程序设计(2)汇编程序asm_run_led

    使用RISC-V 汇编语言,编写一个led 跑马灯的实验 程序分析: LI x8, 0xf0000000; # 设置gpio address; LI是伪指令,可被编译器翻译成LUI risc-v汇编指令集内无专门用来清零的指令。 LI x7, 0x00400000; # x7 设置delay counter 将值0x0040_0000存储到x7寄存器中。 因为led是共阳设计,一端已经是3.3V高电平,led7对应的GPIO接口如果是1,led7不会被点亮。反而其他led灯会被点亮,因为led6-0此时为低电平。所以需要把x10的值整体取反。

    1.9K30发布于 2021-08-03
  • 来自专栏电子工程师成长日记

    设计分享|单片机抢答器(汇编

    设计介绍 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。 :比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景; 软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。 资料内容 01 仿真实现 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 02 汇编程序 本设计汇编语言编写,主代码具体如下: ORG 000 JMP BEGIN TABLE:

    86420编辑于 2022-07-27
  • 来自专栏TechBlog

    汇编语言程序设计技巧详解(附例题)

    (5)提供足够的调用信息: 1.寄存器传送参数 2.存储器传送参数 3.堆栈传送参数 模块化设计 ---- 汇编语言程序设计技巧 四种基本结构:顺序结构、分支结构、循环结构和子程序。 PC ← A+DPTR TAB: AJMP     SUB0  ;转移指令表 AJMP  SUB1 AJMP     SUB2       …… AJMP     SUB6 3、循环结构 循环程序结构是汇编语言程序中常见的一种程序结构 子程序设计 (1)子程序入口用标号作为子程序名。 (2)调用子程序之前设置好堆栈。 (3)用返回指令RET结束子程序,并保证堆栈栈顶为调用程序的返回地址。 (4)子程序嵌套须考虑堆栈容量。              DJNZ    R6,DL1              DJNZ    R7,DL2              RET                        END 模块化设计 模块化设计是指把一个具体的功能分解成多个小的模块,各个模块之间相互独立,而又可以相互传递参数。

    1.9K31编辑于 2022-07-20
  • 来自专栏LongJava学习资料

    汇编语言篇——顺序程序、循环程序设计

    assume cs:code a dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh a ends b segment dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

    85500编辑于 2023-11-30
  • 来自专栏Lvshen的技术小屋

    设计模式9之命令模式

    一般来说,命令模式结合其他设计模式,会有更好的效果。 但是命令模式中Command也不能无限扩展,如果有N个命令,那就会有N个Command子类,这样也不是很好。

    38510编辑于 2022-05-05
  • 来自专栏后端技术

    系统设计与分析 作业9

    使用ECB实现 make reservation用例的详细设计(包含用例简介,顺序图,类图) 1.1 用例简介 该用例完成用户订购酒店的整体过程。 用户可搜索酒店,得到搜索表单。 将逻辑设计类图映射到实际项目框架的包图。用树形结构表述实现的包和类

    47040发布于 2019-05-25
  • 来自专栏汇编语言

    汇编语言】外中断(三)—— 探秘汇编外中断:从安装新INT 9例程到指令系统总结

    前言 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。 但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤其在嵌入式系统和性能优化方面有重要作用。 本专栏的汇编语言学习章节主要是依据王爽老师的《汇编语言》来写的,和书中一样为了使学习的过程容易展开,我们采用以8086CPU为中央处理器的PC机来进行学习。 1. 安装新的 int 9 中断例程 下面,我们将安装一个新的int 9中断例程,使得原int 9中断例程的功能得到扩展。 1.2.3 原int 9中断例程入口地址的保存 因为在编写的新int 9中断例程中要调用原int 9中断例程,所以,要保存原int 9中断例程的入口地址。 保存在哪里?

    36300编辑于 2025-01-20
领券