汇编语言(Assembly Language)笔记
来源:互联网 发布:手机定时器软件 编辑:程序博客网 时间:2024/05/16 12:01
An introduction to Assembly Language:
It’s a low-level programming language for a computer or other programmable device. In contrast,it can compiling faster than most high-level programming languages. Each Assembly Language is specific to a particular computer architecture. A lesson teaches the syntax of the language.
1.寄存器:(Register)
16位CPU所有寄存器:
(1)4个数据寄存器(AX、BX、CX、DX)
(2)4个段寄存器(ES、CS、SS、DS)
(3)2个变址和指针寄存器(SI、DI)
(4)2个指针寄存器(SP、BP)
(5)1个指令指针寄存器(IP)
(6)1个标志寄存器(FLAGS)
32位CPU所有寄存器:
(1)同16位
(2)增加2个16位的段寄存器:FS、GS
2.寄存器用处:
CS : IP = 程序段 : 偏移量
SS : SP = 堆栈段 : 栈顶
SS : BP = 堆栈段 : 偏移量
DS : ALL = 数据段 : 数值、符号地址、指针寄存器的值等
ES : DI = 在进行串操作时,其目的地址的段寄存器规定为ES
小结:
(1)程序在CS段
(2)常用数据段用DS来指向,不常用数据段用ES、FS和GS等来指向。
(3)物理地址PA = 段地址 × 16 +偏移量(Offset)、有效地址EA = Effective Address(段内偏移)
3.寻址方式:(Addressing)
(1)立即寻址(immediate addressing):MOV 寄存器 立即数
(2)直接寻址(direct addressing):MOV 寄存器 段地址
(3)寄存器寻址(register addressing):MOV 寄存器/地址
(4)间接寻址(register indirect addressing):MOV 寄存器 [寄存器]
(5)相对寻址(register relative addressing):MOV 寄存器 [寄存器 + n] (n表示偏移值)
(6)基址变址寻址(based indexed addressing):MOV 寄存器 [数据寄存器 + 变址寄存器]
(7)相对基址变址寻址(relative based indexed addressing):MOV 寄存器 [数据寄存器 + 变址寄存器 + n] (n表示偏移值)
4.指令:(Instruction)
(1)数据传送指令:MOV、XCHG、LEA、LDS、LES、PUSH、POP、PUSHF、POPF、CBW、CWD、CWDE。
(2)算术指令:ADD、ADC、INC、SUB、SBB、DEC、CMP、MUL、DIV、DAA、DAS、AAA、AAS。
(3)逻辑指令:AND、OR、XOR、NOT、TEST、SHL、SAL、SHR、SAR、RCL、RCR、ROL、ROR。
(4)控制转移指令:JMP、Jcc、JCXZ、LOOP、LOOPZ、LOOPNZ、LOOPNE、CALL、RET、INT。
(5)串操作指令:MOVS、LODS、STOS、CMPS、SCAS。
(6)标志处理指令:CLC、STC、CLD、STD。
- 汇编语言(Assembly Language)笔记
- 汇编语言Assembly Language
- Assembly Language(汇编语言)概述
- Variable Assembly Language可变汇编语言
- 汇编语言(Assembly Language)——面向机器的程序设计语言
- 学习笔记 - Assembly 汇编语言
- 汇编语言Assembly(一)
- 汇编语言Assembly(二)
- Assembly Language Note (3)
- assembly language
- assembly language
- 汇编(The art of assembly language)
- PASSION之Assembly Language(1)
- 《The Art of Assembly Language》中文名:汇编语言编程艺术 中英文正式版本下载
- 《VTC出品汇编语言编程教程》(VTC Assembly Language Programming)[光盘镜像]
- Assembly Language Reference
- Assembly language experiment----Encryption
- x86 Assembly Language
- is not null 并不能拦截空串
- 如何反编译apk
- xlsxwriter+图表
- 4.1.1 Future模式
- Codeforces Round #383 (Div. 2)D.Arpa's weak amphitheater and Mehrdad's valuable Hoses【并查集+分组背包】
- 汇编语言(Assembly Language)笔记
- spring事务配置方式
- 下载软件自学网视频
- BP算法的推导(注意残差的定义)
- Android之版本-更优雅的 Android 发布自动版本号方案
- Android-常用adb命令
- 批量下载图片,简易脚本
- Report标签嵌套在自定义form中引起的问题
- Tomcat启动解析web.xml源码分析