汇编语言-寄存器
汇编语言-寄存器
8086CPU有14个寄存器:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW 且都是16位
通用寄存器
AX,BX,CX,DX
为了兼容性可将16位寄存器分位两个8位寄存器 高8位和第8位
AH、AL、BH、BL、CH、CL、DH、DL
初识汇编指令
汇编指令 | 操作内容 | 高级语言语法描述 |
---|---|---|
mov ax,18 | 将18送入寄存器AX | AX = 18 |
mov ah,78 | 将78送入寄存器AH | AH = 78 |
add ax,8 | 将寄存器AX中的数值加上8 | AX = AX +8 |
mov ax,bx | 将寄存器BX中的数据送入寄存器AX | AX = BX |
add ax,bx | 将AX,BX的数值相加,结果存入AX | AX = AX + BX |
8086CPU给出物理地址的方法
物理地址=段地址*16+偏移地址本质含义:CPU在访问内存时,用一个基础地址(段地址 *16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址
段的概念
-
CPU可以用不同的段地址和偏移地址形成同一个物理地址
当菜cpu要访问21F60H单元,则它给出的段地址SA和偏移地址EA满足SA*16+EA=21F60H即可
-
如果给定一个段地址,仅通过变化偏移地址来寻址,最多可定位多少个内存单元?
偏移地址16位,变化范围为0~FFFFH,仅用偏移地址来寻址最多可寻64KB个内存单元
段寄存器
CS:代码段寄存器 IP:指令指针寄存器
CPU将CS:IP☞的内容当作指令执行
- 从CS:IP☞的内存单元读取指令,读取的指令进入指令缓冲器
- IP=IP+所读取指令的长度,从而指向下一条指令
- 执行指令。前往第一个步骤,重复。
修改CS:IP的指令
jmp 段地址:偏移地址 :用指令中的段地址修改CS,偏移地址修改IP
jmp 寄存器 :用寄存器中的值修改IP
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇