汇编复习(三)—— 伪指令与操作符

2024-03-06 16:18

本文主要是介绍汇编复习(三)—— 伪指令与操作符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、伪指令

1、段定义

data segmentbuff db 'ABC'
data ends
code segment
assume cs:code,ds:code
start: mov ax,datamov ds,axmov ah,9int 21h
code ends
end start

2、程序开始和结束

END [lable]

3、数据定义和存储单元分配
格式:

[变量]	操作码	n个操作数

操作码:

DB 字节
DW 字
DD 双字
DF 6个字节的字
DQ 4个字
DT 10个字节的字

4、类型属性操作符

WORD PTR

字类型

BYTE PTR

字节类型

5、THIS操作符和LABLE伪操作

6、表达式赋值伪指令EQU=

7、地址计数器$和定义伪指令

(1)$
表示当前地址计数器的值
(2)ORG
用来设置当前地址计数器的值
(3)EVEN
下一个变量/指令开始于偶数地址
(4)ALIGN
下一个变量/指令开始于4的倍数
8、过程定义伪指令

procedure_name PROC Attribute
...
procedure_name ENDP

二、操作符

1、算术操作符
+,-,*,/和MOD,MOD指除法运算后的余数

2、逻辑与逻辑移位操作符
逻辑操作符:AND,OR,XOR,NOT
逻辑移位操作符:SHL,SHR

3、关系操作符
EQ,NE 等于/不等
LT,GT 小于/大于
LE,GE 小于等于/大于等于
计算结果为逻辑值,真则FFFFH,假则0

4、数值回送操作符
(1)TYPE
回送该变量的以字节数表示的类型,

DB:1
DW:2
DD:4,
DF:6
DQ:8
DT:10
NEAR:-1
FAR:-2

(2)LENGTH
回送用DUP复制的变量的总变量数,其他为1

Eg:
MESSAGE 4 DUP(0)

则 LENGTH MESSAGE =4
(3)OFFSET
回送偏移地址
(4)SEG
回送段地址

这篇关于汇编复习(三)—— 伪指令与操作符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/780620

相关文章

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

C++可以被重载的操作符Overloadable operators

C++允许绝大多数操作符被重载,也就是重新定义操作符实现的功能,这样它们的行为可以被设计出来以适应所有的数据类型,包括类。 以下是C++可以被重载的操作符(Overloadable operators): //四则运算符+ - * / %+= -= *= /= %=//比较运算符> >= == != //赋值运算符= //位操作

c++/《重载操作符》

为什么要对运算符进行重载:         C++预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对这么运算符进行重新定义,赋予其新的功能,以满足自身的需求。 <返回类型说明符> operator <运算符符号>(<参数表>) { <函数体> }

汇编:嵌入式软件架构学习资源

成为嵌入式软件架构设计师需要掌握多方面的知识,包括嵌入式系统、实时操作系统、硬件接口、软件设计模式等。 以下是一些推荐的博客和网站,可以帮助你深入学习嵌入式软件架构设计: ### 1. **Embedded.com**    - **网址**: [Embedded.com](https://www.embedded.com/)    - **简介**: 这是一个专注于嵌入式系统设计的专业网

计算机基础知识复习9.6

点对点链路:两个相邻节点通过一个链路相连,没有第三者 应用:PPP协议,常用于广域网 广播式链路:所有主机共享通信介质 应用:早期的总线以太网,无线局域网,常用于局域网 典型拓扑结构:总线型 星型(逻辑总线型) 介质访问控制  静态划分信道 信道划分介质访问控制 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 动态分配信道 轮询访问介质访问控

【JavaScript】ES6之...延展操作符

… 操作符(也被叫做延展操作符 - spread operator)已经被 ES6 数组 支持。它允许传递数组或者类数组直接做为函数的参数而不用通过apply。      延展操作符一般用于属性的批量赋值上。    通过分析① test8(…args) ②test8(args) ③ test8.apply(null, args) 易看出区别

GDB 查看汇编

查看汇编 x disassemble

【抽代复习笔记】28-群(二十二):四道子群例题

例1:证明,循环群的子群是循环群。 证:设G = (a),H ≤ G。 (1)若H = {e},则H是一阶循环群; (2)设H至少包含2个元素,即设H = {...,a^(-k),a^(-j),a^(-i),a^0,a^i,a^j,a^k,...}, 其中a^i是H中正指数最小的元素,0<i<j<k, 下证a^i是H的生成元: 对任意的a^t∈H(t∈Z),存在q∈Z,使得t = qi