首页 > 编程语言 >微机原理笔记 - chap3 - Intel处理器指令系统及汇编语言

微机原理笔记 - chap3 - Intel处理器指令系统及汇编语言

时间:2023-10-16 18:44:17浏览次数:56  
标签:操作数 指令系统 Intel mem al mov chap3 ax reg

汇编语言基础

数据定义:

pPvKyzF.png

数据传送、算术运算、跳转指令

MOV 指令

“先目的操作数,再源操作数。”

MOV 指令需要遵循的规则:

  1. 两个操作数的尺寸必须一致。

  2. 两个操作数不能同时为内存操作数

    mov reg, reg
    mov mem, reg
    mov reg, mem
    mov mem, imm
    mov reg, imm
    
    mov var2, var1  ;不合法,需要用寄存器来实现
    
  3. 目的操作数不能是 CSEIPIP

  4. 立即数不能直接送至段寄存器。

XCHG 指令

用来交换两个操作数的内容。

xchg reg, reg
xchg reg, mem
xchg mem, reg

若要交换两个内存操作数,还是需要利用寄存器,即 MOVXCHG 结合使用。

INC 和 DEC 指令

分别实现加 1 与减 1 操作。

inc reg/mem
dec reg/mem
ADD 和 SUB 指令

ADD同尺寸的源操作数和目的操作数相加,结果在目的操作数中(不改变源操作数)。

SUB 将源操作数从目的操作数中减掉,结果在目的操作数中(不改变源操作数)

两者都同 MOV 指令一样,先目的操作数,再源操作数。

.data
var1 DWORD 20000h
var2 DWORD 10000h
.code
mov eax, var1
add eax, var2     ;30000h
sub eax, var2     ;20000h
NEG 指令

认为操作数是有符号数,形式是补码。该指令将操作数按位取反、末位加 1

算术运算影响的标志
  1. 零标志位 ZF

    mov cx, 1
    sub cx, 1        ; ZF = 1
    mov ax, 0FFFFh   ; 全1理解成补码,真值就是-1
    inc ax          ; ZF = 1
    inc ax          ; ZF = 0
    
  2. 符号标志位 SF

    mov cx,0
    sub cx,1       ; SF = 1
    add cx,2       ; SF = 0
    
  3. 进位标志位 CF

    mov al,0FFh
    add al,1    ; CF = 1
    
    mov ax,00FFh
    add ax,1    ; CF = 0
    
    mov ax,0FFFFh
    add ax,1    ; CF = 1
    
    mov al,1
    sub al,2    ; CF = 1。最高位向更高位有进位或借位时置1
    
  4. 溢出标识位 OF

    \(OF = C_n \oplus C_{n - 1}.\)

    其中 \(C_n\) 是符号位产生的进位,即标志位 CF; \(C_{n-1}\) 是最高有效位向符号位产生的进位。

    mov al,+127
    add al,1    ; OF = 1
    
    mov al,-128
    sub al,1    ; OF = 1
    
    mov al,-128     ; AL = 10000000b
    neg al          ; AL = 10000000b, OF = 1
    
    mov al,+127     ; AL = 01111111b
    neg al          ; AL = 10000001b, OF = 1
    
JMP 和 LOOP 指令

JMP :无条件转移
LOOP :条件转移

标签:操作数,指令系统,Intel,mem,al,mov,chap3,ax,reg
From: https://www.cnblogs.com/BeyondLimits/p/17768092.html

相关文章

  • IntelliJ IDEA 2023.2.3 最新版安装激活教程
    1.下载安装IntelliJIDEA建议大家直接在官网下载最新版本,登陆官网,我下载的是的2023.2.3,2023最新版本以及2021版本以上的版本都支持。一步一步确定安装,然后打开这里提示输入激活码,先关闭应用!!!2.下载激活工具打开下载好的工具windows的样子打开scripts文件夹......
  • 首发20A工艺!Intel Arrow Lake单核性能只提升5%
    Intel将在12月14日发布的MeteorLake酷睿Ultra处理器虽然升级Intel4工艺、分离式模块化架构的,但性能一般,只能用于主流和轻薄笔记本。明年,Intel将推出下一代ArrowLake,终于会有新一代桌面版,首发Intel20A制造工艺,接口更换为LGA1851,芯片组升级Z890、B860。据最新曝料,ArrowLake-......
  • IntelliJ IDEA 2023.2社区版插件汇总
    参考插件帝:https://gitee.com/zhengqingya/idea-config/IDEA插件市场:https://plugins.jetbrains.com/突发小技巧:使用插件时要注意插件的版本兼容性,并根据自己的实际需求选择合适的插件。同时,不要过度依赖插件,保持简洁和高效的开发环境才是最重要的。@目录1.SmartTomc......
  • IntelliJ IDEA的使用
    IntelliJIDEA的使用1.idea的分类:ultimate(终版);community(社区)终版要钱;社区版功能全,还没有学成,ultimate的版本一年也太贵,所有有幸有大佬指导,白嫖下。(以后加薪绝对支持下)附上下载地址:最新版本:idea最新版地址之前版本:idea老版本地址PS:一年1400大洋是小贵2.找到网上的永......
  • IntelliJ IDEA 连接远程 Docker 服务端
    IntelliJIDEA连接远程Docker服务端 一、背景说明在使用IntelliJIDEA做Java项目开发时,如果需要将服务打包,根据Dockerfile生成镜像,并上传到远程Linux服务器上,并部署运行容器。可以将打好的工程jar包先上传在Linux服务器上,执行Dockerfile文件,生成镜像,然后运行......
  • intel 4305ue coremark 跑分
    2Kperformancerunparametersforcoremark.CoreMarkSize:666Totalticks:11713Totaltime(secs):11.713000Iterations/Sec:9391.274652Iterations:110000Compilerversion:GCC4.8.520150623(RedHat4.8.5-44)Compilerflags:-O2-DPER......
  • 报错Intel MKL FATAL ERROR: Cannot load libmkl_core.so.的一种解决方法
    问题今天上80服务器跑mdistiller的代码时,意外发现torch、numpy都不能用了T_T以torch为例,出现如下报错情况以numpy为例,出现如下报错情况我们先看看报错信息,这个报错来自InterMKL。InterMKL全称是TheIntelMathKernelLibrary,它是一个主要是用于科学计算的共享库,提供了很......
  • IntelliJ IDEA 快捷键大全 + 动图演示,这效果太炸了!
    看到一篇IDEA快捷键的总结,非常全面,分享一下。本文参考了IntelliJIDEA的官网,列举了IntelliJIDEA(Windows版)的所有快捷键。并在此基础上,为90%以上的快捷键提供了动图演示,能够直观的看到操作效果。该快捷键共分16种,可以方便的按各类查找自己需要的快捷键~~推荐一个开源......
  • VSCode & Intellij IDEA CE 数据库连接
    VSCode&IntellijIDEACE数据库连接大概记一下现在正在用的几个工具/插件VSCodeVSCode里面的工具我下载了很多,如果只是链接MySQL的话,可能用JunHan这位大佬的MySQL就好了:使用这个插件直接打开.sql文件单击运行就能跑sql命令,而且跑起来也挺方便的不过我们项目......
  • intel-RDT技术浅析
    前言本文适合于想要了解RDT技术的人阅读,会涉及到RDT技术的硬件机制,需要对CPU的socket、core、thread等概念有一定的了解。RDT技术简介RDT技术全称ResourceDirectorTechnology,RDT技术提供了LLC(Lastlevelcache)以及MB(MemoryBandwidth)内存带宽的分配和监控能力。RDT的主要功......