摘要:【asm】:几个重要程序——汇编语言 一、基础说明 1、【目录】:几个重要程序 【CPU的模式切换:实模式(16位)——>保护模式(32位)】 【CPU的模式切换三级跳:实模式(16位)——>保护模式(32位)——>长模式(64位)】(备注:这个程序无法通过编译,原因是程序中包含内存越界访问) 二、
阅读全文
随笔分类 - asm
汇编语言
摘要:【ubuntu_nasm】:汇编语言 搭建开发环境(intel_x8664_cpu+ubuntu+nasm+ld+gcc+qemu+gdb) 一、基本说明 1、 汇编语言的的实验环境 cpu: intel_x8664_cpu os: ubuntu26.04(Linux ubuntu 7.0.0-15
阅读全文
摘要:【linux】:linux manual online 一、基本说明 二、manual 手册 1、 man7 -- https://man7.org/linux/man-pages/index.html 2、 man_freebsd -- https://man.freebsd.org/cgi/ma
阅读全文
摘要:【asm_at&t】:内存寻址:disp(base, index, scale) 一、说明 1、 disp(base, index, scale) 表示的内存地址 = base + scale*index + disp 2、 最终结果示意图 二、内存寻址:disp(base, index, scal
阅读全文
摘要:【C】系统编程的常用术语(LINUX) 一、基本说明 二、系统编程的常见术语 1、主设备号和次设备号 主设备号:“主设备号”,映射为“某个驱动程序”,即“f:主设备号-->驱动程序(驱动程序=f(主设备号))”; 次设备号:同一个驱动程序,可以管理很多个设备。举例,我有多块相同的显卡,我只需要安装一
阅读全文
摘要:[asm/c]:SYSCALL系统调用的编号(x86_64) 一、基本说明 1. 操作系统信息(ubuntu25.10): Linux ubuntu 6.17.0-5-generic 2. 系统调用编号文件的位置: /usr/include/x86_64-linux-gnu/asm 3. 系统调用编
阅读全文
摘要:[ubuntu2504] NASM安装——ubuntu2504 一、环境 1. 操作系统: Linux ubuntu 6.14.0-22-generic 二、安装实例 [wit@ubuntu:tmp]$ [wit@ubuntu:tmp]$ [wit@ubuntu:tmp]$ sudo apt ins
阅读全文
摘要:[asm]:NASM 编译、链接、执行的过程(32/64) 一、正文 NASM 编译过程 1、 编译环境 nasm: 2.16 os: Linux rocky 5.14.0-503.22.1.el9_5.x86_64 2、 编译为目标文件: 32位系统:nasm -f elf32 hello.asm
阅读全文
摘要:【asm/c/cpp】:时间单位换算(秒) 一、秒的单位: 1、 second(秒:s) 2、 microsecond(微秒:ms): 1 second = 1000 microseconds (1s = 103 ms) 3、 millisecond(毫秒:μs): 1 second = 10000
阅读全文
摘要:[asm] as - linux64 1 code 1 [root@rocky:src]# cat hello64.as 2 # filename = hello64.as 3 4 5 .data 6 msg : .string "Hello, World!\n" 7 len = . - msg 8
阅读全文
摘要:[asm/c/cpp]: function syscall() 1. syscall() - docs [root@rocky:src]# cat syscall.txt syscall(2) System Calls Manual syscall(2) NAME syscall - indirec
阅读全文
摘要:[nasm]: nasm汇编语言笔记和心得 一、笔记内容 1. ascii: 分为ascii字符和ascii码值 -- ascii字符 ascii码值 | ascii码值(十进制) ascii码值(十六进制) | A 65 0x41 | a 97 0x61 | 0 48 0x30 | 1 49 0x
阅读全文
摘要:[asm]: linux syscall number(32bits_64bits) 一、32bit_syscall_number(451个系统调用) 1 [root@rocky:syscall]# cat linux_syscall_no_32.txt 2 // date: 2024-10-26
阅读全文
摘要:asm:汇编语言概述 汇编语言主要由几个部分构成:指令,伪指令,数据,系统调用。 指令,由“CPU”提供。 伪指令,由“汇编器”提供。 数据,由“内存”和“寄存器”提供。 系统调用,由“操作系统”提供。 因此,汇编语言与CPU、汇编器、操作系统相关。
阅读全文
摘要:[os]:linux 【系统调用的编号】- SYSCALL_NUMBER 一、基本说明 1、操作系统:fedora38 2、【系统调用的编号】所在路径和名称: [ /usr/include/asm-generic/unistd.h ] 二、系统调用编号的源码【文件路径和名称: /usr/includ
阅读全文
摘要:[cpp]: 好玩的“宏定义(macro)” 一、有趣的“宏定义” 1、思想/原理:用【宏macro】,定义【伪指令directive】。 2、命令格式: #define [directive_name] [function or ...] 3、应用实例: 1 // directive entry
阅读全文
摘要:[asm]: GNU Binutils: <as><ld/linker> 1. websites: 1.1 [all] https://sourceware.org/binutils/ 1.2 [docs] https://sourceware.org/binutils/docs/ 3. refer
阅读全文
摘要:nasm:变量的使用(bss_section) 一、bss变量的说明 1、在bss段内,“变量名”代表“内存地址”。 2、bss段的变量赋值: mov [bss_var_name], register 1 section .text 2 global _start 3 4 _start: 5 mov
阅读全文
摘要:计算机科学(cs):负数的补码为什么是“绝对值取反+1”? 一、补码 1、答:计算机所有的数字都表示为补码。在计算机中,正数、零、负数,都可以采用补码表示。补码,统一了数字在计算机中的表示方法。 2、补码:将所有的数字都采用或部分采用“非负数”的表示方法。非负数,补码是“非负数”本身;负数,补码是负
阅读全文
摘要:编程:C语言内存的堆栈模型 一、C语言内存的堆栈模型 1、内存的最小单位是字节(byte)。 2、栈:栈底是高地址,栈顶是低地址。栈空间的地址生长方向:从高地址到低地址。 3、堆:堆底是低地址,堆顶是高地址。堆空间的地址生长方向:从低地址到高地址。 二、C语言内存的堆栈模型示意图
阅读全文

浙公网安备 33010602011771号