汇编网首页登录博客注册
unixandlinux的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
友情链接

[2023-04-17 11:02] 第3章 问题 3.7

问题 3.7

将 10000H~1000FH 这段空间当作栈,初始状态为空,要把 AX、BX、DS 中的数据入栈,应该怎样编写程序指令?
由于栈空间范围是 10000H~1000FH 且初始状态为空,这时 SS:SP 指向的地址为 1000FH + 1 = 10010H(参考“问题 3.6”),设置 SS=1000H,则 SP=0010H。由于 SS 是段寄存器,因此使用下面的指令来实现该设置:
mov ax, 1000H
mov SS, ax
mov SP, 0010H
注意,不能将常量数据直接通过 mov 指令传送给段寄存器,即下面的指令是非法的:
mov SS, 100...
阅读全文 | 评论次数(0) | 浏览次数(96) | 所属类型(问题分析)

[2023-04-17 10:32] 第3章 问题 3.6

问题 3.6

对于一个空栈,SS:SP 将指向一个怎样的位置?
先探讨内存中字型数据的情况。对于字型数据,仿佛存在一个字指针,字指针总是指向字型数据的低 8 位地址单元。本节前面讲过,出入栈操作都是以字为单位进行,可见栈顶元素就是一个字型数据;出入栈的操作对象是 SS:SP 指向的内存单元,可见 SS:SP 就是栈元素字型数据的字指针;因此 SS:SP 指向的正是栈顶元素字型数据的低 8 位地址单元而不是高 8 位地址单元。字型数据的低 8 位地址代表该字型数据的地址,可见表示字型数据的 [address] 与栈顶元素字型数据一一对应,而[address]与寄存器名表示的字型数据一一对...
阅读全文 | 评论次数(0) | 浏览次数(107) | 所属类型(问题分析)

[2023-04-16 17:21] 第3章 检测点 3.1

检测点 3.1

(一)
在 Debug 实验环境中执行以下操作:
(1) 将题目中要求的数据输入指定的 0000:0000~0000:001f 内存空间
-e 0000:0
0000:0000 00.70 00.80 00.f0 00.30 00.ef 00.60 00.30 00.e2
0000:0008 00.   00.80 00.80 00.12 00.66 00.20 00.22 00.60
0000:0010 00.62 00.26 00.e6 00.d6 00.cc 00.2e 00.3c 00.3b
0000:0018 00.ab 00.ba 00.   0...
阅读全文 | 评论次数(0) | 浏览次数(86) | 所属类型(汇编作业)

[2023-04-15 19:32] 第3章 问题 3.4

问题 3.4

1. 内存中的情况如下:
 地址        数据(十六进制)
10000H        23
10001H        11
10002H        22
10003H        11

2. 执行指令:
mov ax, 1000H
mov ds, ax
mov ax, [0]
mov ax, 11316
mov [0], ax
mov bx, [0]
sub bx, [2]
mov [2], bx
(1) 指令 mov ax, 1000H:将数据 1000H 存储到寄存器 AX 中。
(2) 指令 mov ds, ax:将通用寄存器 AX 存储的数据传送到段寄存器 DS 中。
(3) 指令...
阅读全文 | 评论次数(0) | 浏览次数(100) | 所属类型(问题分析)

[2023-04-15 13:14] 第3章 问题 3.3

问题 3.3

1. 内存中的情况如下:
 地址        数据(十六进制)
10000H        23
10001H        11
10002H        22
10003H        66

2. 执行指令:
mov ax, 1000H
mov ds, ax
mov ax, [0]
mov bx, [2]
mov cx, [1]
add bx, [1]
add cx, [2]
(1) 指令 mov ax, 1000H:将数据 1000H 存储到寄存器 AX 中。
(2) 指令 mov ds, ax:将通用寄存器 AX 存储的数据传送到段寄存器 DS 中。
(3) 指令 mov ax, [0]:CP...
阅读全文 | 评论次数(0) | 浏览次数(91) | 所属类型(问题分析)

[2023-04-15 10:37] 第3章 问题 3.2

问题 3.2(测试)

1. 编写将 al 中的数据送入内存单元 10000H 中的汇编指令
mov ax, 4AE7
mov bx, 1000
mov ds, bx
mov [0], al

2. 在 Debug 中执行上述汇编指令,验证其能否实现本题要求的目标
(以下省略号代表计算机在执行 Debug 命令后的输出内容)
(1) 向内存单元 100000H 前后存储单元中写入无关数据并查看验证
向 0ffffH~10002H 地址的存储空间写数据 01H 23H 45H 67H,存储在 10000H 内存单元的数据是 23H。
-e 0fff:f 01 23 45 ...
阅读全文 | 评论次数(0) | 浏览次数(94) | 所属类型(问题分析)

[2023-04-15 10:12] 第2章 实验1 查看 CPU 和内存,用机器指令和汇编指令编程

实验1 查看 CPU 和内存,用机器指令和汇编指令编程

一、Debug 命令总结
1. Debug 的 E 和 A 命令用于将数据写入内存,D 和 U 命令用于查看(输出显示)内存所存储的信息,T 命令用于执行 CS:IP 指向的地址所存储的指令,R 命令用于查看(输出显示)和改写 CPU 寄存器所存储的数据。
2. E 和 A 命令的区别:E 命令以机器码或字符(串)形式写入数据,A 命令则以汇编指令的形式写入数据。
3. E 和 A 命令的共同点:
(1) E 和 A 命令都有两种命令格式:
e <起始地址 数据1 数据2 数据 3 ...>
e <起始地址>
a [起...
阅读全文 | 评论次数(0) | 浏览次数(74) | 所属类型(课程实验)

[2023-04-15 10:02] 第1章 检测点 1.1

检测点 1.1
(1)
CPU 的寻址能力为 8KB,意味着 CPU 最多可以查找 8K 个存储单元(1 个存储单元的容量为 1B),因为:
8K = 8 * 1K = 2^3 * 2^10 = 2^13
也就是说 CPU 的寻址能力为 2^13 个存储单元,所以其地址总线宽度为 13。
(2)、(3)
因为 1 个存储单元可以存储 1 字节(1 Byte)数据信息,而 1KB 等于 1024 Byte(1024 字节),即 1KB 的存储器可以存储 1024 字节数据,也就是 1024 个存储单元,其存储单元的编号从 0 到 1023。如果一个存储单元包含 8 bit 位,那么 ...
阅读全文 | 评论次数(0) | 浏览次数(81) | 所属类型(汇编作业)

[2023-04-15 09:54] 第2章 检测点 2.3

检测点 2.3
指令序列如下:
mov ax, bx
sub ax, ax
jmp ax
执行上述 3 条指令后,CPU 共 4 次修改 IP,其中前三次是在每次读取完一条指令后,IP 都自动进行了增值,第 4 次修改则发生在执行最后一条 jmp 指令时 —— jmp 指令将 AX 寄存器所存储的值存入 IP 寄存器,所以最后 IP 中的值与 AX 中的值相同。由于第 2 条指令执行的操作是将 AX 寄存器中的值减去其自身,所得的结果为 0,然后将该结果存入 AX 寄存器,所以 AX 寄存器存储的值为 0,这使得最后的 IP 值也为 0。...
阅读全文 | 评论次数(0) | 浏览次数(67) | 所属类型(汇编作业)

[2023-04-15 09:44] 第2章 检测点 2.2

检测点 2.2
(1) 偏移地址使用 16 位总线宽度,其数值范围为0000H~FFFFH;给定段地址 0001H,其基础地址为:
基础地址 = 段地址 x 16 = 00010H
即段地址左移 1 位。而物理地址为:
物理地址 = 基础地址 + 偏移地址 = 00010H + 0000H~FFFFH = 00010H~1000FH
也就是说,CPU 的寻址范围为 00010H 到 1000FH 之间。
(2) 数据存放的存储单元 20000H 既可以是起始地址或终止地址的存储单元,也可以是这两个地址之间的任意一个地址对应的存储单元,该范围由偏移地址来决定;使用 16 位总线宽度的...
阅读全文 | 评论次数(0) | 浏览次数(71) | 所属类型(汇编作业)
页码数(7):  1  2  3  4  5  6  7