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

    汇编语言 手记6

    相关命令: R 查看改变CPU寄存器的内容 D 查看内存中的内容 E 改写内存中的内容 U 将内存中的机器指令翻译成汇编指令 T 执行一条机器指令 A 以汇编指令的格式在内存中写入一条机器指令 简单的实例 用A命令用汇编语言的形式来修改内存中的指令 ? 用汇编的形式来查看内存中的内容 ? 由于之前修改过CS IP中的内容,此时要想执行程序,要修改回CS IP内容 ? 使用T命令一步一步的执行汇编命令。

    96970发布于 2018-01-17
  • 来自专栏计算机学习

    xv6(21) 内联汇编

    内联汇编 内联汇编,顾名思义,一种语言的内部使用汇编,一般的语言是不能直接操作寄存器的,而汇编可以,所以在这种语言内部以某种方式嵌入汇编代码来提升能力,一般来说也就是 c/c++ 使用内联汇编比较多,本文用的 通用约束 ”0,1,2,3,4,5,6,7,8,9“,也只用在 Input 部分,表示与 Output 和 Input 中第 n 个变量使用相同的寄存器或内存。 xv6 本文的剩余部分来解决 xv6 中涉及内联汇编的部分,顺带讲述一些相关指令的用法 in, out in 指令用法: in port, %al in port, %ax out %al, port 来看 xv6 字符串函数 memset,就是用 stos 指令实现的: void* memset(void *dst, int c, uint n) //将从地址dst开始的n个字节设置为c { 然后解决了 xv6 里面一些用内联汇编实现的功能函数,也就是 x86.h 那个文件里面的函数,还有一些函数就没一一拿出来举例了,都类似或者更简单,把本文举出来的弄清楚,其他的应该没什么问题。

    89600编辑于 2023-12-10
  • 来自专栏Android点滴分享

    汇编学习(6), 外部函数,调用约定

    本篇介绍 本篇介绍下汇编中的外部函数和调用约定。 The 6th argument goes into r9. 如果参数超过6个,比如10个,那么规则继续如下: The 10th argument is pushed first. The 6th argument goes into xmm5. The 7th argument goes into xmm6. The 8th argument goes into xmm7. mov bl,[rax] mov [rdi+5], bl mov rax, qword [rbp+24] mov bl,[rax] mov [rdi+6]

    1.3K20编辑于 2022-12-11
  • 来自专栏Hk_Mayfly的学习记录

    汇编语言》课程设计2

    assume cs:code,ss:stack 2 stack segment 3 db 128 dup (0) 4 stack ends 5 code segment 6 cx 240 pop bx 241 ret 242 243 244 ;获取时间 245 get_time_info: 246 ;从cmos ram获取年月日,时分秒6个数据 247 mov cx,6 248 ;获取存放单元地址 249 mov bx,offset cmos - offset boot + 7e00H 250 ;通过替换来显示 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
  • 来自专栏Hk_Mayfly的学习记录

    汇编语言》课程设计2

    loop cls_stack pop cx pop bx ret ;获取时间 get_time_info: ;从cmos ram获取年月日,时分秒6个数据 mov cx,6 ;获取存放单元地址 mov bx,offset cmos - offset boot + 7e00H ;通过替换来显示 mov si,offset 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中直接写入指令编写 的汇编程序 适用于功能简单、短小精悍的程序 只需要包含汇编指令即可 单独编写成源文件后再编译为可执行文件的程序 适用于编写大程序 需要包括汇编指令 由写出源程序到执行可执行文件的过程 ---- 编译 ---- 提示语法错误 ---- 连接 ---- 执行可执行程序 ---- 小结 ---- 运行及跟踪 这一节主要来看看程序加载进内存后的执行过程: 先准备一个汇编程序

    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 _ LOOP: ADDI t3, t3, 1; # t3 = t3 + 1 BNE t3, t2, LOOP; # if(x6 ! = 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
  • 来自专栏电子工程师成长日记

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

    具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口 最高运作频率35Mhz,6T/12T可选。 设计内容 01 仿真图 本设计利用protues8.7软件实现仿真设计,具体如图。 02 程序 本设计汇编语言编写,主代码具体如下: ORG 0000H LJMP MAIN ORG 0003H LJMP JIAYI ORG 0013H LJMP JIANYI ORG A,#0FH MOVC A,@A+DPTR MOV P2,A LJMP XSHI SMBIAO:DB 3FH,06H,5BH,4FH,066H,06DH,07DH,07H,7FH,6FH

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

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

    (5)提供足够的调用信息: 1.寄存器传送参数 2.存储器传送参数 3.堆栈传送参数 模块化设计 ---- 汇编语言程序设计技巧 四种基本结构:顺序结构、分支结构、循环结构和子程序。 3、循环结构 循环程序结构是汇编语言程序中常见的一种程序结构。 1.寄存器传送参数 2.存储器传送参数 3.堆栈传送参数 【例】将R4R5R6中三个字节数据对半分解,变成6个字节, 存入显示缓冲区(DISMEM0~DISMEM5)。 晶振    DL2: MOV  R6,#200    DL1: MOV  R5,#250              DJNZ    R5,$              DJNZ    R6,DL1              DJNZ    R7,DL2              RET                        END 模块化设计 模块化设计是指把一个具体的功能分解成多个小的模块,各个模块之间相互独立,

    1.9K31编辑于 2022-07-20
  • 来自专栏电子工程师成长日记

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

    具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口 最高运作频率35Mhz,6T/12T可选。 设计内容 01 仿真实现 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 02 汇编程序 本设计汇编语言编写,主代码具体如下: ORG 0000H LJMP MAIN ORG 0003H LJMP PINT0 ORG 000BH

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

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

    使用RISC-V 汇编语言,编写一个led 跑马灯的实验 程序分析: LI x8, 0xf0000000; # 设置gpio address; LI是伪指令,可被编译器翻译成LUI ADDI x6,x0,0 ; # 初始化 变量x6 =0; x0的值和0相加后将和存储到x6寄存器中。意为将x6寄存器清零。risc-v汇编指令集内无专门用来清零的指令。 因为led是共阳设计,一端已经是3.3V高电平,led7对应的GPIO接口如果是1,led7不会被点亮。反而其他led灯会被点亮,因为led6-0此时为低电平。所以需要把x10的值整体取反。 ADDI x6, x6, 1; # x6 = x6 + 1 x6作为累加器,每循环一次加1 BNE x6, x7, LOOP; # if(x6 ! ADDI x6, x0, 0; # x6 = 0 清零x6,因为x6这个累加器之后在点亮其他灯并延时1s还要被用到。

    1.9K30发布于 2021-08-03
  • 来自专栏乱码三千

    汇编语言之MIPS汇编

    = address of null-terminated string to print read integer 5 $v0 contains integer read read float 6 定义Double数据 定义字符串数据 用户输入 字符串输入 整型数据输入 浮点型数据输入 单精度和双精度 单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位 #需求:实现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 7}, { 10, 11, 12}}; #以下是以 列不动,行轮动的方式实现 .data da: .word 1,2,3,5,6,7,10,11,12 array: .space 36 $s1,4($a0) li $s1,3 sw $s1,8($a0) li $s1,5 sw $s1,12($a0) li $s1,6

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

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

    具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口 最高运作频率35Mhz,6T/12T可选。 资料内容 01 仿真实现 本设计利用protues8.7软件实现仿真设计,具体如图。 Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。 02 汇编程序 本设计汇编语言编写,主代码具体如下: ORG 000 JMP BEGIN TABLE:

    86420编辑于 2022-07-27
  • 来自专栏互联网大杂烩

    6设计原则

    打算用一句话概括每一个设计原则 单一职责原则 一个类只负责一项职责,有且仅有一个原因引起类的变更。 里氏替换原则 所有引用基类的地方必须能透明地使用其子类对象。

    45730发布于 2018-08-22
  • 来自专栏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

    85500编辑于 2023-11-30
  • 来自专栏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就是定义这是某个段。 ; hello.asm 2 section .data 3 00000000 68656C6C6F2C20776F 这样就完成了汇编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 loop s mov ax,4c00h int 21h code ends end assume cs:code code segment mov ax,0fffh mov ds,ax mov bx,6

    1.3K20编辑于 2023-11-14
领券