. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
主题 : :  新的一年到来,我要给自己的学习留下足迹!  [已解决] 回复[ 10次 ]   点击[ 850次 ]  
xzlt21
[帖 主] [ 发表时间:2010-02-20 10:49 ] 
荣誉值:2
信誉值:0
注册日期:2010-02-17 09:42
我可能学习的很慢o 。应为我还要上学的!希望大家给我提出错误!(最好讲得详细一点,因为我很笨的- -!)
我希望大家多多和我交流!这样才可以相互提升!myQQ:631957202
好了!开始吧

……………………第一章……………………
1.1-1.10小结
1.汇编指令是机器指令的助记符,同机器指令一一对应。
2.每一种CPU都有自己的汇编指令集。
3.CPU可以直接使用的信息在存储器中存放。
4.在存储器中,指令和数据没有任何区别,都是二进制信息。
5.存储单元从零开始顺序编号。
6.一个存储单元可以存储8个bit(比特),即8位二进制数。
7.1Byte(字节)=8bit(比特)   1KB(千字节)=1024B(字节)   1MB(兆字节)=1024KB(千字节)
  1GB(吉字节)=1024MB(兆字节)
8.每个CPU芯片都有许多管脚,这些管教和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出

3种总线的宽度标志了这个CPU的不同方面的性能:
          地址总线的宽度决定了CPU的寻址能力;
          数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
          控制总线的宽度决定了CPU对系统中其它器件的控制能力。
检测点1.1
1.一个CPU的寻址能力为8KB,那么他的地址总线的宽度为(13)。
  因为:一个CPU的地址总线有N根,就可以说这个CPU的地址总线的宽度为N,所以寻址能力8KB=2^N
  8KB(8*1024B)=2^N   N=13
2.1KB的存储器有(1024)个存储单元。存储单元从编号(0)到(1023)。
因为:8个bit组成一个Byte,即8个二进制位。所以一个1KB存储器有1024存储单元。存储器被划分成
      若干个存储单元,每个存储单元从0开始顺序编号,因为这个存储器有1024个存储单元,所以编
号从0~1023.
3.1KB可以存储(8192)个bit,1024个Byte。
  因为:1KB=1024B=1024*8bit
4.1GB=2^30 Byte   1MB=2^20 Byte   1KB=2^10 Byte
  因为:1Byte(字节)=8bit(比特)   1KB(千字节)=1024B(字节)   1MB(兆字节)=1024KB(千

字节)
  1GB(吉字节)=1024MB(兆字节) 
5.8080、8088、8086、80286、80386的地址总线宽度分别为16根、20根、24根、32根,则他们的寻址能
  力分别为(64KB)、(1MB)、(16MB)、(4GB)。
  分析:因为一个CPU有N根地址总线,则可以说这个CPU的地址总线宽度为N,这样的CPU寻址能力为2的 

 N次方个Byte。
  所以它们的寻址能力分别为  
 (2的16次方/1024 KB)  (2的20次方/1024*1024 MB) (2的24次方/1024*1024MB) 
 (2的24次方/1024*1024*1024 GB)
6.8086、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则他们可
  一次传送的数据为:(1)B、(1)B、(2)B、(2)B、(4)B。
  因为:8根数据总线可传送1个8位二进制即1Byte, 16根数据总线一次可传2Byte  
7.从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。
  分析: 8086宽度是16 ,一次可传2Byte, 所以要传 1024/2 = 512 次 
         80386宽度是32 ,一次可传4Byte,所以要传 1024/4 = 256次
8.在存储器中数据和程序以(二进制)形式存放。(知识点就不说了)
xzlt21
[第2楼] [ 回复时间:2010-02-21 18:43 ] 
荣誉值:2
信誉值:0
注册日期:2010-02-17 09:42
……………………第二章……………………
检测点2.1
mov ax,62627  AX= 62627 F4A3 
mov ah,31H    AX= 31A3 
mov al,23H    AX= 3123 
add ax,ax     Ax= 6246 
mov bx,826CH  BX= 826C 
mov cx,ax     CX= 6246 
mov ax,bx     AX= 826C 
add ax,bx     AX= 04D8 
mov al,bh     AX= 0482 
mov ah,bl     AX= 6C82 
add ah,ah     AX= D882 
add al,6      AX= D888 
add al,al     AX= D810 
mov ax,cx     AX= 6246 

(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 
mov ax,2 
add ax,ax 
add ax,ax 
add ax,ax

检测点2.2
1.给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为(00010H)到(1000FH)
  
  分析:偏移地址为16位,16位二进制数可表示的最大数范围是:2^16 = 64KB,变化范围为0~FFFFH    
  。根据公式:段地址×16+偏移地址=物理地址。题目中  段地址为0001H,即:CUP的寻址范围为:  
  0001H×16+0H=00010H  0001H×16+FFFFH=1000FH。

2.有一数据存放在内存20000H单元中,献给顶端地址为SA,若想用偏移地址寻到此单元。则SA满足的条  
  件是:最小为(1001H),最大为(2000H)
  
  分析:如果用SA×16+(0H~FFFFH)=20000H 则 SA×16=10001
  
  因为一个段地址的起始地址一定是(10进制16)或者说(10H )的倍数,一个数据的16进制形式左移1位  
  ,相当于乘以16,即是左移后的段地址能被10H整除,所以偏移地址就不能取到FFFFH了,即偏移地址  
  的取值范围为 0H~FFF0H了。

  所以最小:SA×16+FFF0H=20000H         最大:SA×16+0H=20000H

            SA=1001H                           SA=2000H

3.提示,反过来思考一下,当段地址给定为多少,CPU无论怎么变化偏移地址都无法寻到20000H 

  单元? 
  
  1001>SA>2000

  分析:同上

检测2.3

  下面的3条指令执行后,CPU几次修改IP?都是什么时候?最后IP中的值是多少?

  mov ax,bx 
  
  sub ax,ax
  
  jmp ax

  答:4次。最后值是0000H
 
  分析:在读入mov ax,bx之前,IP指向mov ax,bx 首地址A

  第一次:读入mov ax,bx后,  IP指向sub ax,ax  首地址B

  第二次:执行完mov ax bx后,读入sub ax,ax后,IP指向jmp ax首地址C
  
  第三次:执行完sub ax,ax后,读入jmp ax后,IP指向下一指令首地址D
  
  第四次:执行完jmp ax后,IP=ax即0000H      最后IP地址为0000H

实验一
 
  Debug功能:R命令:查看、改变CPU寄存器的内容;

             D命令:查看内存中的内容;

             E命令:改写内存中的内容;

             U命令:将内存中的机器指令翻译成汇编指令;

             T命令:执行一条机器指令;

             A命令:以汇编指令的格式在内存中写入一条机器指令。
             
实验任务:

1.ax=0002 bx=4026

2.ax=100(16进制)因为2^8=256是十进制。

3.不变(我的日期地址fff0:f5 fc)

4.不变      

分析:3和4,
      因为:fff0:f5 fc和b8100h属于只读存储器!
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved