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

    汇编语言 手记5

    段寄存器就是提供段地址的。 8086CPU有4个段寄存器 CS DS SS ES 当8086CPU要访问内存时,由这4个段寄存器提供内存单元的段地址。 CS(代码寄存器)和IP(指令指针寄存器)是80

    1.2K60发布于 2018-01-17
  • 来自专栏Linux驱动

    汇编指令-CMP、TEQ(5)

    该文介绍了CMP和TEQ指令的功能和用法,以及相关的操作数、操作符和标志位。

    1.9K100发布于 2018-01-03
  • 来自专栏Android点滴分享

    汇编学习(5),函数,栈帧

    本篇介绍 本篇介绍下汇编中的函数,栈帧内容。 函数 汇编也支持函数调用,如下是一个例子: extern printf section .data radius dq 10.0 栈帧 对于intel处理器,在调用函数的时候需要保证rsp是16字节对齐的,这样设计是为了更好的支持SIMD。那体现到代码上是怎样呢?

    86110编辑于 2022-12-07
  • 来自专栏我在本科期间写的文章

    4 汇编语言程序设计

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

    46210编辑于 2024-09-13
  • 来自专栏Hk_Mayfly的学习记录

    《汇编语言》课程设计2

    1 assume cs:code,ss:stack 2 stack segment 3 db 128 dup (0) 4 stack ends 5 code segment di,160*10+30*2 338 ;保存在直接定址表的绝对位置 339 mov bx,offset func_pos-offset boot+7e00h 340 ;菜单有5行 341 mov cx,5 342 s1: 343 ;这里相当于外循环,每次一行 344 ;获取func_pos中每行的保存位置的偏移地址 345 mov si,ds:[ zhidao.baidu.com/question/564008138.html int 16的1号程序:https://zhidao.baidu.com/question/511189643.html 总结   汇编的难度并不大 ,我认为在有编程的基础上,学习汇编要做到细致,细致的理解计算机编程的编译过程,对于我理解其他编程语言也有很大的帮助。

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

    《汇编语言》课程设计2

    列显示菜单 mov di,160*10+30*2 ;保存在直接定址表的绝对位置 mov bx,offset func_pos-offset boot+7e00h ;菜单有5行 mov cx,5 s1: ;这里相当于外循环,每次一行 ;获取func_pos中每行的保存位置的偏移地址 mov si,ds:[bx] ;调用内循环函数,输出一行的每个字符 zhidao.baidu.com/question/564008138.html int 16的1号程序:https://zhidao.baidu.com/question/511189643.html 总结   汇编的难度并不大 ,我认为在有编程的基础上,学习汇编要做到细致,细致的理解计算机编程的编译过程,对于我理解其他编程语言也有很大的帮助。

    1.2K20发布于 2019-07-30
  • 来自专栏c++与qt学习

    汇编语言设计程序篇-03

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

    96710编辑于 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
  • 来自专栏电子工程师成长日记

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

    :比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景; 软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。 设计内容 01 仿真图 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 02 程序 本设计由汇编语言编写,主代码具体如下: ORG 0000H LJMP MAIN ORG 0003H LJMP JIAYI ORG 0013H LJMP JIANYI ORG MOV P0,A MOV A,COUNT ANL A,#0FH MOVC A,@A+DPTR MOV P2,A LJMP XSHI SMBIAO:DB 3FH,06H,5BH

    1.2K10编辑于 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
  • 来自专栏电子工程师成长日记

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

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

    1.2K10编辑于 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)子程序嵌套须考虑堆栈容量。 1.寄存器传送参数 2.存储器传送参数 3.堆栈传送参数 【例】将R4R5R6中三个字节数据对半分解,变成6个字节, 存入显示缓冲区(DISMEM0~DISMEM5)。 DJNZ    R6,DL1              DJNZ    R7,DL2              RET                        END 模块化设计 模块化设计是指把一个具体的功能分解成多个小的模块

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

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

    assume cs:codea segment db 1,2,3,4,5,6,7,8a endsb segment db 1,2,3,4,5,6,7,8b endsc segment db 0,0,0,0,0,0,0,0c 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

    89400编辑于 2023-11-30
  • 来自专栏乱码三千

    汇编语言之MIPS汇编

    MIPS汇编中的分段处理 .data #数据段 .text #代码段 传送指令 加载立即数指令 li li(load immediate) :用于将立即数传送给寄存器 li $t0,1 ;十六进制数据使用 f12 = double to print print string 4 $a0 = address of null-terminated string to print read integer 5 io控制台显示光标,可输入数字,回车后将输入的数字保存在$v0中 move $t0,$v0 #由于接下来还需要使用$v0 ,为避免数据被覆盖掉 将输入的数据转移到$t0中进行临时保存 li $v0,5 #需求:实现int a[3][3] = {{1, 2, 3}, {5, 6, 7}, { 10, 11, 12}}; #以下是以 行不动 列轮动的方式实现 .data da: .word 1,2,3,5,6,7,10,11,12 6, 7}, { 10, 11, 12}}; .data da: .word 1,2,3,5,6,7,10,11,12 # 假如以上数据是动态写入的 当做数组中的数据来用 .text

    11K31发布于 2021-08-24
  • 来自专栏电子工程师成长日记

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

    资料内容 01 仿真实现 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 02 汇编程序 本设计由汇编语言编写,主代码具体如下: ORG 000 JMP BEGIN TABLE: R5, #20 ; 延时20×20ms子程序 LOOP4: MOV R6, #50 LOOP5: MOV R7, #100 DJNZ R7, $ DJNZ 6, LOOP5 DJNZ R5, LOOP4 RET BEGIN: MOV P2, #0FFH ;P2口置高电平

    88720编辑于 2022-07-27
  • 来自专栏c++与qt学习

    汇编语言--高级汇编技术

    汇编语言--高级汇编技术 子程序的封装 程序的多文件组织 汇编指令汇 数据传送指令 算术指令 逻辑指令 串处理指令 控制转移指令 处理机控制与杂项操作指令 汇编伪操作汇 处理机选择伪操作 段定义伪操作 程序开始和结束伪操作 数据定义及存储器分配伪操作 表达式赋值伪操作 地址计数器与对准伪操作 基数控制伪操作 汇编操作符汇总 算术操作符 逻辑和移位操作符 关系操作符 数值回送操作符 属性操作符 汇编过程 .exe的诞生 程序运行步骤及生成的文件 汇编过程 宏汇编 C语言中的预处理命令 汇编中的宏---由C中的宏定义说起 举例 语法和术语 子程序VS宏定义 宏中的局部标号 变元是操作码的一部分 宏库 条件汇编 举例 重复汇编: 用于连续产生完全相同或者基本相同的一组代码 不定重复伪操作IRP 不定重复伪操作IRPC 80X86汇编 80x86 cpu性能一览 80x86寄存器结构 80x86寻址方式 80x86 TABLE DB 'ABCD' ---- 属性操作符 ---- 汇编过程 .exe的诞生 ---- 程序运行步骤及生成的文件 ---- 汇编过程 ---- 宏汇编 C语言中的预处理命令 -

    2.4K31编辑于 2022-07-12
  • 来自专栏Android点滴分享

    汇编学习(1),汇编之helloworld

    本篇介绍 本篇作为汇编系列的开篇,就先研究下汇编如何写helloworld。 信息,-F dwarf用来指定debug信息格式是dwarf,-l用来生成机器码和汇编的对应文件。 汇编程序一般由data,bss,text 3个段构成, 前面加section就是定义这是某个段。 0 3 00000009 726C6400 4 section .bss 5 这样就完成了汇编helloworld的学习了。

    1.4K40编辑于 2022-11-28
  • 来自专栏Republic博客

    汇编语言_汇编语言程序

    可以来看一段汇编源程序 assume cs:codesg codesg segment mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21h codesg ends end 开头和结尾的两句代表伪指令 只有编译器可以读懂 汇编指令可以被翻译为机器码最终被cpu执行 汇编程序 就是包含汇编指令和伪指令的文本 mov ax,4c00h int 21h 跟C语言程序的return 0一样 返回控制权 一个汇编程序是由多个段组成的 这些段被用作各种空间来使用 一个有意义的汇编程序至少需要一个段 且每个段都需要段名 段名 segment- -段的开始 段名 ends--段的结束 assume假设 含义是假设某一段寄存器和程序中我们定义的段名关联起来 可以理解为和变量的引用一个意思 利用汇编程序计算2^3 assume cs:code code segment mov ax,2 add ax,ax add ax,ax code ends end 汇编程序的编写不是我学习的重点,这里直接跳过 需要的可以自己去看一下 [...]的规定与(

    1.4K20编辑于 2023-11-14
  • 来自专栏电子工程师成长日记

    设计分享|基于单片机的双机通信(汇编)

    单片机类设计可参考以下文章撰写论文: 毕设无忧|单片机类毕设论文模板 设计内容 仿真图(protues8.7) 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues是在单片机仿真设计中常用的设计软件之一,通过设计出仿真电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 protues8.7软件资料及仿真解决办法: proteus8.7安装及破解教程(内附安装包) protues仿真常见问题解决方案 Protues8.7简易教程 程序(KeilC51) 本设计由汇编语言编写 received:mov p0,sbuf clr ri jmp wait end Keil C51软件资料及使用教程: Keil C51安装及破解教程(内附安装包) KEIL5使用技巧 Keil5简易教程

    1.3K20编辑于 2022-07-27
领券