(1)补全下面的程序,使其可将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中。逆序复制的含义如图3.17所示(图中内存里的数据均为假设).
mov ax,1000H
mov ds,ax
mov ax,2000H
mov ss,ax
mov sp,0010H
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]
(2)补全下面的程序,使其可将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中.
mov ax...
- [evilswell] 漏了进位1呵 07/22 11:22
- [fpamc] FD48H+2ECCH=2B14H? 应该是2c14h吧 07/21 12:35
- [fpamc] 第一题,立即数后边要加H 07/21 12:03
- [fpamc] 嗯嗯,这章很重要。。。呃,,每章都很重要,。。 07/21 00:43
- [sean] 我原来还以为是先执行,执行结束后再改变ip的值。疏忽了。 07/16 09:17
- [evilswell] 理解CPU的工作原理很重要呵....现在我能每一步骤的CPU工作的原理图画出来 07/10 17:44
- [fpamc] 所有指令都是读取后,放入指令缓冲器,改变ip指向下一条指令,然后执行。 07/10 17:24
- [evilswell] 嗯嗯、段地址*16+0H=00010H+0H=00010H 07/10 15:24
- [fpamc] 第一题应该是10h~1000FH 07/10 11:08
- [fpamc] 路过。 07/09 16:16
[2012-07-21 11:42] 检测点3.2
阅读全文 |
评论次数(1) |
浏览次数(334) |
所属类型(汇编作业)
[2012-07-21 11:19] 检测点3.1
(1)在Debug中,用"d 0:0 1f"查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1 -->AX=0001H
mov ds,ax -->ds=ax=0001H
mov ax,[0000] -->AX=ds*16+0000H=26...
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1 -->AX=0001H
mov ds,ax -->ds=ax=0001H
mov ax,[0000] -->AX=ds*16+0000H=26...
阅读全文 |
评论次数(2) |
浏览次数(328) |
所属类型(汇编作业)
[2012-07-21 00:23] 汇编语言---第三章总结
第3章 寄存器(内存访问)
3.1 内存中字的存储
字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元存放字型数据的高位字节,低地址内存单元存放字型数据的低位字节。
起始地址为N的字单元简称为N地址字单元。
任何两个地址连续的内存单元,N号单元和N+1号单元,可将它们看成两个内存单元,也可看称一个地址为N的字单元中的高位字节单元和低位字节单元。
3.2 DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086PC中,内存地址由段地址和偏移地址组成。
8086CPU中有一...
3.1 内存中字的存储
字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元存放字型数据的高位字节,低地址内存单元存放字型数据的低位字节。
起始地址为N的字单元简称为N地址字单元。
任何两个地址连续的内存单元,N号单元和N+1号单元,可将它们看成两个内存单元,也可看称一个地址为N的字单元中的高位字节单元和低位字节单元。
3.2 DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086PC中,内存地址由段地址和偏移地址组成。
8086CPU中有一...
阅读全文 |
评论次数(1) |
浏览次数(360) |
所属类型(学习总结)
[2012-07-10 16:16] 检测点2.3
下面的3条指令执行后,CPU几次修改IP?都在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
->CPU__4__次修改IP。最后IP中的值为__0___。
1)指令mov ax,bx执行前初始IP值不变,执行后CPU第一次修改IP,读入的指令是89 D8(mov ax,bx),长度为2Byte,执行后IP=初始IP+2。
2)继续执行指令sub ax,ax后,CPU第二次修改IP,读入的指令是29 C0(sub ax,ax),长度为2Byte,此时ax=0,执行后IP=初始IP+2+2。
3)继续读入指令jmp ax后,CPU第三次修...
mov ax,bx
sub ax,ax
jmp ax
->CPU__4__次修改IP。最后IP中的值为__0___。
1)指令mov ax,bx执行前初始IP值不变,执行后CPU第一次修改IP,读入的指令是89 D8(mov ax,bx),长度为2Byte,执行后IP=初始IP+2。
2)继续执行指令sub ax,ax后,CPU第二次修改IP,读入的指令是29 C0(sub ax,ax),长度为2Byte,此时ax=0,执行后IP=初始IP+2+2。
3)继续读入指令jmp ax后,CPU第三次修...
阅读全文 |
评论次数(3) |
浏览次数(364) |
所属类型(汇编作业)
[2012-07-10 10:18] 检测点2.2
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为__0__到__100FH__.
方法: 1)偏移地址16位,变化范围为0~FFFFH,仅用偏移地址寻址最多可寻64KB个内存单元.
2) 物理地址=段地址*16+偏移地址
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为__1001H__,最大为__2000H___。
方法:
1)偏移地址的变化范围为0~FFFFH
2)假设段地址为1000H,即基础地址为10000H;如果基础地址+(最大)偏移地址<物理...
方法: 1)偏移地址16位,变化范围为0~FFFFH,仅用偏移地址寻址最多可寻64KB个内存单元.
2) 物理地址=段地址*16+偏移地址
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为__1001H__,最大为__2000H___。
方法:
1)偏移地址的变化范围为0~FFFFH
2)假设段地址为1000H,即基础地址为10000H;如果基础地址+(最大)偏移地址<物理...
阅读全文 |
评论次数(2) |
浏览次数(356) |
所属类型(汇编作业)
[2012-07-09 16:12] 检测点2.1
(1)写出每条汇编指令执行后相关寄存器中的值.
No.1) mov ax,62627 -> AX = F4A3H
方法: 1)16进制表示的数据的后面加H,2进制表示的数据后面加B,10进制表示的数据后面什么都不加.
2)10进制转16进制,直接除16取余,然后逆向排列
No.2) mov ah,31H -> AX = 31A3H
No.3) mov al,23H -> AX = 3123H
No.4) add ax,ax -> AX = 6246H
No.5) mov bx,826CH -> BX ...
No.1) mov ax,62627 -> AX = F4A3H
方法: 1)16进制表示的数据的后面加H,2进制表示的数据后面加B,10进制表示的数据后面什么都不加.
2)10进制转16进制,直接除16取余,然后逆向排列
No.2) mov ah,31H -> AX = 31A3H
No.3) mov al,23H -> AX = 3123H
No.4) add ax,ax -> AX = 6246H
No.5) mov bx,826CH -> BX ...
阅读全文 |
评论次数(0) |
浏览次数(307) |
所属类型(汇编作业)
[2012-07-09 15:38] 汇编语言---第二章总结
第2章 寄存器
一个典型的CPU由三器(运算器,控制器,寄存器)等器件构成,这些器件靠内部总线相连.
内部总线和外部总线的区别:内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其它器件的联系.
在CPU中, 1)运算器进行信息处理;
2)控制器控制各种器件进行工作;
3)寄存器进行信息存储;
4) 内部总线连接各种器件,在它们之间进行数据的传送;
CPU中的主要部件是寄存器.
寄存器是CPU中程序员可以用指令读写的部件.程序员通过改变各种寄存器中的内容来实现对CPU的控制.
8086CPU...
一个典型的CPU由三器(运算器,控制器,寄存器)等器件构成,这些器件靠内部总线相连.
内部总线和外部总线的区别:内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其它器件的联系.
在CPU中, 1)运算器进行信息处理;
2)控制器控制各种器件进行工作;
3)寄存器进行信息存储;
4) 内部总线连接各种器件,在它们之间进行数据的传送;
CPU中的主要部件是寄存器.
寄存器是CPU中程序员可以用指令读写的部件.程序员通过改变各种寄存器中的内容来实现对CPU的控制.
8086CPU...
阅读全文 |
评论次数(1) |
浏览次数(376) |
所属类型(学习总结)
[2012-07-08 14:34] 检测点1.1
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为->13
思路: No.1) 1KB=2的10次方Byte
No.2) 一个CPU有N根地址线,这个CPU的地址总线的宽度为N,这样的CPU最多可寻找2的N次方个内存单元
No.3) 地址总线访问的是存储单元(内存单元),存储单元的单位为字节(Byte)
(2)1KB的存储器有->1024 个存储单元,存储单元的编号从->0 到 ->1023
思路: No.1) 存储器的单位为字节(Byte)
No.2) 1KB=2的10次方Byte
No.3) 存储单元从0开始顺序编号...
思路: No.1) 1KB=2的10次方Byte
No.2) 一个CPU有N根地址线,这个CPU的地址总线的宽度为N,这样的CPU最多可寻找2的N次方个内存单元
No.3) 地址总线访问的是存储单元(内存单元),存储单元的单位为字节(Byte)
(2)1KB的存储器有->1024 个存储单元,存储单元的编号从->0 到 ->1023
思路: No.1) 存储器的单位为字节(Byte)
No.2) 1KB=2的10次方Byte
No.3) 存储单元从0开始顺序编号...
阅读全文 |
评论次数(2) |
浏览次数(297) |
所属类型(汇编作业)
[2012-07-08 14:16] 汇编语言---第一章总结
1.2 汇编语言的产生
汇编语言又3类指令->1)汇编指令(有对应的机器码) 2)伪指令(没有对应的机器码) 3)其它符号(没有对应的机器码).
汇编语言的核心是汇编指令,它决定了汇编语言的特征.
1.3 存储器(内存)
存储器中存放指令和数据.
CPU是计算机的核心部分,它控制整个计算机的运作并进行计算.
想让一个CPU工作,必须向它提供指令和数据.
一台PC机中内存的作用仅次于CPU.
1.5 指令和数据
在内存或磁盘上,指令和数据没有任何区别,都是二进制数据.
1.6 存储单元(内存单元)
存储器被划分为若...
汇编语言又3类指令->1)汇编指令(有对应的机器码) 2)伪指令(没有对应的机器码) 3)其它符号(没有对应的机器码).
汇编语言的核心是汇编指令,它决定了汇编语言的特征.
1.3 存储器(内存)
存储器中存放指令和数据.
CPU是计算机的核心部分,它控制整个计算机的运作并进行计算.
想让一个CPU工作,必须向它提供指令和数据.
一台PC机中内存的作用仅次于CPU.
1.5 指令和数据
在内存或磁盘上,指令和数据没有任何区别,都是二进制数据.
1.6 存储单元(内存单元)
存储器被划分为若...
阅读全文 |
评论次数(1) |
浏览次数(303) |
所属类型(学习总结)