当前位置:网站首页>汇编语言(5)寄存器(内存访问)
汇编语言(5)寄存器(内存访问)
2022-06-25 17:06:00 【Day-3】
1 内存中字的存储
CPU中,用16位寄存器来存储一个字。高八位存放高位字节,低八位存放低位字节。
字单元概念,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。
2 DS和[address]
mov bx,1000H
mov ds,bx
mov al,[0]
CPU自动取ds中的数据为内存单元的段地址。
CPU不支持直接将数据送入段寄存器的操作。
3 字的传送
mov bx,1000H
mov ds,bx
mov ax,[0] ;1000:0处的字型数据送入ax
mov [0]cx ;cs中的16位数据送到1000:0处
4 mov add sub指令
mov 段寄存器,寄存器
mov 寄存器,段寄存器
mov 内存单元,段寄存器.
mov 段寄存器,内存单元
5 数据段
将123B0H~123B9的内存单元定义为数据段。现在要累加这个数据段中的前3个单元中的数据,代码如下:
mov ax,123BH
mov ds,ax ;将123BH送入ds中,作为数据段的段地址
mov al,0 ;用al存放累加结果
add al,[0] ;将数据段第一个单元(偏移地址为0)中的数值加到al中
add al,[1] ;将数据段第二个单元(偏移地址为1)中的数值加到al中
add al,[2] ;将数据段第三个单元(偏移地址为2)中的数值加到al中
数据和程序在计算机中都是以二进制的形式存放的,
在区别程序和数据时,关键是看段地址,如果段地址是ds
段,说明该内存存放的是数据,如果段地址是cs段,说明该内存
存放的是指令。
6 栈
可以将栈看做一个只有一个开口的盒子。
栈有两个基本操作:入栈和出栈。
PUSH(入栈)POP(出栈)。
任何时刻SS:SP指向栈顶元素。
关于栈越界问题,CPU只考虑当前的栈在何处、当前执行的命令是哪一条。
当一个段中存放数据,那么就是“数据段”,存放代码,就是“代码段”,存放栈,那么就是“栈段”。
7 用机器指令和汇编指令编程
(1)关于D命令。
(2)在E、A、U命令中使用段寄存器。
在这些命令中,,也可以同D命令一样,用段寄存器表示内存单元的段地址。
(3)Debug的T命令在执行修改寄存器SS的指令时,下一条命令也紧接着被执行。
边栏推荐
猜你喜欢

Ten thousand volumes - list of Dali wa

Mathematical modeling - linear programming
![[micro service sentinel] overview of flow control rules | detailed explanation of flow control mode for source | < direct link >](/img/d3/b7d40a158fa5093e27299557bce96d.png)
[micro service sentinel] overview of flow control rules | detailed explanation of flow control mode for source | < direct link >

这些老系统代码,是猪写的么?

WPF development essays Collection - ECG curve drawing

学习太极创客 — MQTT(三)连接MQTT服务端

「津津乐道播客」#386 原汤话原食:谁还不是个“白字先生”?

Vscode plug-in self use

剑指 Offer 39. 数组中出现次数超过一半的数字

XShell连接VMWare虚拟机
随机推荐
Next. JS hot update markdown file change
The art of code annotation. Does excellent code really need no annotation?
Why does MySQL limit affect performance?
A complete collection of APP testing tools. It's enough to collect this one
PLSQL 存储函数SQL编程
Old mobile phones turn waste into treasure and serve as servers
Uncover ges super large scale graph computing engine hyg: Graph Segmentation
Redis series - overview day1-1
pytorch官方文档学习记录
【Matlab】数据插值
Super Full Metal PBR Multi - channel Mapping Materials website collation
WPF development essays Collection - ECG curve drawing
SMART PLC如何构造ALT指令
PLSQL storage function SQL programming
Singleton mode application
学习太极创客 — MQTT(三)连接MQTT服务端
SnakeYAML配置文件解析器
Sword finger offer II 035 Minimum time difference
剑指 Offer II 010. 和为 k 的子数组 前缀和差
JVM內存結構