首页
学习
活动
专区
圈层
工具
发布

汇编学习总结一(10.27)

MASM32是国外的MASM爱好者Steve Hutchesson自行整理和编写的一个软件包,目前最高版本为11r版。...MASM32并非指Microsoft的MASM宏汇编器,而是包含了不同版本工具组建的汇编开发工具包。...汇编工具,主要是masm,这个是微软自己的,nasm是开源汇编工具。可以在linux和Windows下运行,目前知乎上有nasm的教程,主要是讲述和c语言的关联,在linux下学习。...3、masm xx.asm 4、link xx.obj 5、xx.exe回车即可运行 debug的使用 -u查看机器码 -r查看寄存器数值 -a写汇编指令 -t执行 目前学到了三种总线...数据总线 鼠标键盘通过端口port和cpu通信,使用input out 内存空间:包括显存、内存 写数据其实就是往寄存器写数据,进而控制cpu,从而由cpu控制显示,数据计算等 寄存器为了兼容以前的程序指令

1.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    NASM语法

    ,大写的是用来指定需要传递的选 项的数目,请参阅2.1.15 2.1.2 `-f'选项:指定输出文件的格式。...所以,如果运行: nasm myfile.asm -p myinc.inc 跟在源文件开头写上'%include "myinc.inc"然后运行'nasm myfile.asm'是等效的。...关于使用它们的一个例子在第九章给出。你也可以使用段寄存器 名作为指令前缀:代码'es mov [bx],ax'等效于代码'mov [es:bx],ax'。我们推荐后一种语法。...对于浮点指令,NASM 接受各种语法:你可以使用MASM 支持的双操作数形式,或者你 可以使用NASM 的在大多数情况下全用的单操作数形式。支持的所以指令的语法 细节可以参阅附录B。...每一个带有单个操作数,用来表明字节数,字数,或双字数 或其他的需要保留单位。就像在2.2.7 中所描述的,NASM 不支持MASM/TASM 的扣留未 初始化空间的语法'DW ?'

    2.5K20

    【汇编语言】和loop指令(三)—— Debug与masm的指令处理差异与loop,的联合应用

    Debug和编译器masm的指令处理差异 1.1 示例引入 我们在 Debug 中写过类似的指令: mov ax, [0] 表示将 ds:0处的数据送入 ax 中。...下面通过具体的例子来看一下 Debug 和汇编编译器 masm 对形如“mov ax,[0]”这类指令的不同处理。...1.2.4 汇编源程序的实际实施情况 将汇编源程序存储为compare.asm,用masm、link生成compare.exe,用 Debug加载compare.exe,如下图所示。...1.2.5 两种情况的对比分析 从上面的两个图中我们可以明显地看出,Debug 和编译器masm 对形如“mov ax,[0]”这类指令在解释上的不同。...比如 mov al, ds:[0] 如果没有在“[]”的前面显式地给出段地址所在的段寄存器,比如 mov al, [0] 那么,编译器masm 将把指令中的“[idata]”解释为“idata” (2)

    30510

    汇编入门demo(winmac)

    1.image] st=>start: 开始 op1=>operation: 编辑程序 op2=>operation: 汇编(masm)(.lst) op3=>operation: 连接(link) op4...DF DN UP 中断位IF EI DI 符号位SF NG PL 零值位ZF ZR NZ 辅助进位AF AC NA 奇偶位PF PE PO 进位位CF CY NC A address 将从键盘直接输入的汇编指令翻译成目标代码...U range 将指定内存中的目标代码反汇编成8086/8088的汇编指令格式在屏幕上显示出来。 G [=addr[,addr1[,addr2,…]]] 连续执行内存中的程序。...单步执行命令T和P 这两个命令都是只执行一条指令,它们的区别是T命令对于子程序调用指令的执行,将转入相应的子程序内部,而P命令则将整个子程序作为一条指令来执行。...--- mac mac上会比较简单, 利用homebrew安装nasm, 利用nasm -v确认是否安装成功 brew install nasm [15d702c043ac4247a3239e49262fd664

    98340

    计算机是如何启动的?一文教你自制操作系统

    汇编器的选择 所以我们需要编写一段汇编代码,主流的汇编器主要有四个:微软家的 MASM、Borland 公司的 TASM、开源的 NASM 以及 GNU 汇编器。...MASM 与 TASM 的语法是最为接近的,NASM 语法与他们有一些差别,但只要熟悉三者中一个的语法,通过查阅手册就可以清楚另外两者的代码如何编写了。...MASM 中,如果要取变量的首地址,需要使用 OFFSET 或 PTR 指令,但在 NASM 中并没有这两个指令,取而代之的是,只要是变量,默认都是返回地址,所以直接使用命令 mov ax, BootMessage...所以, - 5.3.3. times times 是 NASM 中十分实用的一个伪指令,他有两个操作数: times n m 表示把 m 重复 n 次。...例如 times 3 db 0 指令相当于: db 0 db 0 db 0 这有些类似 MASM 中的 DUP 指令(需要先添加 start label 到程序第一行): db 510-($-start

    3.5K10

    来自谷歌的5项Material设计规范

    过去Google的产品线,每一个都相当的独立,在产品的设计上反映得尤为明显,甚至不必看产品设计,只要看一下Google每款产品的LOGO都能发现许多不同风格的设计。...UI产品 Google I/O 2014上着重展示的Material Design,以非常高调的方式,宣布了Google Design的存在:不欣赏设计,对设计毫无感觉的Google已是昨日。...不过,它也不能归类为拟物化设计,毕竟它所是用的图案、形状并非是对现实实体的模拟,而是按照自己对数字世界的理解,以色彩、图案、形状进行视觉信息上的划分。...正如Material Design名字所暗示的,为了适应多尺寸的屏幕,杜瓦迪以及他的团队,寻求一种更加抽象的表达,一种存在屏幕里的显示“材料”。...随着Android 5.0的发布,Material Design也必定会成为未来APP设计的趋势,这种设计理念让Android界面在体验上更加新鲜和简洁,且能够非常有效的激发应用开发者的创作热情,使其带来更加卓越的应用界面

    1.2K50

    来自Google:三项触手可及的高科技

    项目名为Soli,该传感器能够识别手表表面的手指运动,并且按照对应的手势追踪对应的手势。基本上,该技术能够在不久的将来取代触摸屏。 下面的图像展示了Soli的工作原理。...(虽然图像中显示的模块会发出某种频率的波来检测手指的位置,但是具体发射的何种波就不得而知了。不过我有看到清华的通过手指遮挡wifi信号,来检测手指位置的,该技术应该与Soli类似。)...事实上,这件能够通过在其上滑动就能解锁手机屏的衣服材料十分特殊,它是由ATAP开发的导电材料编织而成,可以称之为“智能纤维”,我们之前也有介绍过能够自发光的纤维。...拼装式手机 下面这个不算新鲜,Moto之前也有相关的项目,应该是我等屌丝最为受用的了,名为Project Area。 将来的手机可能使用时间会变长,起码是“主机箱”使用时间会变长。...一旦手机的各个模块可以进行拆分组装,手机的升级成本就会大大降低,而且替换下来的模块还能再利用。(如果全家的电器都是这种模式,退役的摄像头和内存之类的可以用来升级其他的智能家电。)

    70360

    汇编语言完成1到100累加-3

    push, sp-2 pop, sp+2 cmp cmp 指令在功能上和 sub 指令相同,唯一不同之处在于,cmp 指令仅仅根据计算的结果设置相应的标志位,而不保留计算结果,因此也就不会改变两个操作数的原有内容...cmp 指令将会影响到CF、OF、SF、ZF、AF 和 PF 标志位。 根据这些标注为的变化我们就可以用条件转移指令了。...or指令 逻辑或,有1则1,没有则0 程序环境 NASM 编译器版本 :nasm-2.07 IDE :vs code 虚拟机: oracle vm virtualBox 最新版 写入工具:fixvhdwr.exe...,sp是相对栈顶的偏移 ; 当使用 PUSH 指令向栈中压入 1 个字节单元时,SP = SP - 1;即栈顶元素会发生变化; ; 而当使用 PUSH 指令向栈中压入 2 个字节的字单元时...、结果商也会存到这,dx余数 mov bx,10 @d: inc cx xor dx,dx div bx ; 这里可以等效 add , ; 原因是 dl

    1.4K20

    来自11家OEM厂商的智能手机容易遭到隐藏AT指令攻击

    前言 国外的安全研究人员发现,来自11家智能手机OEM厂商的数百万台移动设备容易遭到隐藏AT命令攻击。 ?...虽然国际电信机构已经推出了标准化的标准化的基本AT命令,所有智能手机必须支持这些指令。...针对数以千计Android固件的研究 来自佛罗里达大学、斯托尼布鲁克大学和三星研究美国的11名科学家组成团队,研究了现代Android设备目前支持哪些类型的AT指令以及影响。...该研究团队分析了来自11个Android OEM的超过2000个Android固件映像,如华硕、谷歌、HTC、华为、联想、LG、LineageOS、摩托罗拉、三星、索尼和中兴。...USB接口暴露AT指令 这些AT指令均通过手机USB接口暴露,这意味着攻击者必须获得用户设备的访问权限或接入隐藏的USB底座、充电器或充电站内的恶意组件。

    89820

    Assembly Language 初体验与介绍

    它是一种低级的、面向硬件的编程语言,具有与机器语言相近的指令集,同时又允许程序员使用助记符来代替机器码中的二进制数字。...汇编语言的每一条指令都对应于机器语言的一条指令,因此它们之间可以直接进行一对一的转换。汇编语言的特点高效性:汇编语言编写的程序执行速度快,因为它直接操作硬件,没有额外的开销。...常见的汇编器有MASM、NASM等。用户可以从官方网站上下载适合自己操作系统的版本进行安装。编写第一个汇编程序安装完汇编器后,就可以开始编写第一个汇编程序了。通常,汇编程序的扩展名为.asm。...寄存器是CPU内部的临时存储单元,用于存储指令、数据和地址等信息。内存则是计算机中用于长期存储数据的部件。指令集汇编语言使用助记符来表示指令,每个助记符对应于一个机器指令。...常见的指令包括加法、减法、乘法、除法等算术运算指令,以及跳转、比较等控制指令。数据表示在汇编语言中,数据可以用不同的方式表示。

    71700

    从hex_encode起利用SIMD向量指令引入PgVA aka PostgresVectorAcceleration(一)

    1) 限制64位架构:这些是主要的服务器架构,具有必要的数据格式和相应的寄存器和操作指令 2) 从Intel x86-64的SIMD指令开始:这是开发和实际使用的最常用的平台 3) 不要将概念仅限于Intel...),并且不需要像在库例中那样重复检查 7) 通过避免等待延迟来保持向量化执行端口一直在做有用的工作 8) 以cache line方式访问内存(从输入缓冲区读取,写到输出缓冲区)避免内部的cache问题...9) 重点通过最先进的SIMD指令集AVX512进行优化:提供了最先进的指令和相当多的大寄存器帮助避免延迟 10) 如果可能用老的SIMD指令集(AVX2或SSE2)进行fallback实现 实施细节...1) 使用NASM编译器写循环算法:NASM得到积极维护,由多种输出格式,遵循Intel风格,实现了所有当前的指令并且速度很快 2) 循环独立于操作系统,因此支持所有基于NASM obj输出格式的操作系统...5) 一些指令(moves、zeroing)在处理器执行端口外执行:这些不消耗执行周期但是需要考虑他们的延迟 6) 一些向量指令(乘加)的延迟是5,例如,这意味着在指令发出后,处理器必须等待5个周期,

    61220

    汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等

    根据标志位跳转的指令: JE ;等于则跳转 同JZ JNE ;不等于则跳转 同JNZ JA ;无符号大于则跳转 JNA ;无符号不大于则跳转 JAE ;无符号大于等于则跳转 同JNB JNAE...7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF 溢 出 方 向 中 断 陷 阱 符 号 零 未 用 辅 助 未 用 奇 偶 未 用 进 位 影响标志位的汇编指令...CF说明无符号数相减的溢出,同时又确实是被减数最高有效位向高位的借位。...指令类型 助记符 对标志寄存器的影响 备注 ZF CF PF SF OF AF DF IF TF 数据传送类 通用 MOV 不影响标志位 交换 XCHG 堆栈操作 PUSH POP 地址传送...CPU控制指令 标志位操作 CLC √ 此指令置CF=0 CMC √ 此指令CF取反 STC √ 此指令置CF=1 CLD √ 此指令置

    13.9K20

    汇编语言之GNU ARM

    什么是编译器 将高级语言翻译成机器语言或者汇编语言的工具 汇编器和编译器的区别 汇编器的服务对象是汇编语言,编译器的服务对象是高级语言 汇编器和汇编语法伪指令的关系 不同的CPU对应不同的指令集 ,不同的汇编器对应不同的伪指令集和汇编语法...每种汇编器都可以有自己的伪指令集和自己的语法 使用不同的汇编器汇编同一个cpu架构的汇编代码,所对应的指令绝对是一致的,但伪指令各有千秋 ;使用ARM官方的汇编器 AREA test, CODE...mov R3,#5 END ;使用GNU的汇编器 .text ;伪指令 mov R3,#5 ;传送指令皆为mov .end 常见的汇编器 MASM...ARM就是单独面向ARM架构的汇编器,此外还有GNU FOR X86等 NASM汇编器: 是一款面向x86架构的汇编器,支持8086汇编和win32汇编,同时可跨平台, 免费开源 ARMASM汇编器:...指令和伪指令的区别 指令: 有与之对应的机器码,能被cpu所识别,和编译器无关 伪指令:没有与之对应的机器码,无法被cpu识别,只能被编译器识别,不同编译器伪指令不一样 不同的CPU对应不同的指令集;不同的汇编器对应不同的语法和伪指令集

    2.6K30

    Mac下写8086汇编

    前期准备 我们课上讲的是8086下的16位汇编,如此远古的操作系统导致我在配置环境时遇到了很多问题。...起初打算在win7虚拟机下用masm和汇编ide写汇编,但编译不成功,因为masm新版已经不是16位了。...~代表当前用户目录,即/Users/xxx Step3、在Mac中将写好的汇编源文件xx.asm放到masm5.0目录下,依次键入"masm xx.asm;"与"link xx.obj;",就可以直接运行程序了...link xx.obj; xx.exe 编写第一个汇编程序 https://www.guohere.com/659.html 如果你已经了解过指令系统和寄存器,这些例子将向你介绍汇编源文件的基本结构...assume cs:code,ds:data; assume伪指令用于确定段与段寄存器的关系,assume不会翻译成机器指令,但会存在于exe的文件头中,这会方便DOS重新分配内存时改变对应地址指针寄存器的值

    2.9K30
    领券