迁西骇客吧 关注:18贴子:103
  • 5回复贴,共1

汇编语言 检测点(总)答案~

只看楼主收藏回复

检测点1.1
(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。
(2)1KB的存储器有 1024
个存储单元,存储单元的编号从 0 到
1023 。
(3)1KB的存储器可以存储
8192(2^13) 个bit, 1024个Byte。
(4)1GB是 1073741824 (2^30) 个Byte、1MB是 1048576(2^20) 个Byte、1KB是 1024(2^10)个Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64 (KB)、 1 (MB)、 16 (MB)、 4 (GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1 (B)、 1 (B)、 2 (B)、 2 (B)、 4 (B)。
(7)从内存中读取1024字节的数据,8086至少要读 512 次,80386至少要读 256 次。
(8)在存储器中,数据和程序以 二进制 形式存放。
解题过程:
(1)1KB=1024B,8KB=1024B*8=2^N,N=13。
(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。
(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。
(4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。
(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。
(6)8根数据总线一次可以传送8位二进制数据(即一个字节)。
(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。
(8)在存储器中指令和数据没有任何区别,都是二进制信息。


1楼2013-03-30 16:48回复

    检测点 2.1
    (1)
    写出每条汇编指令执行后相关寄存器中的值。
    mov
    ax,62627 AX=F4A3H
    mov
    ah,31H AX=31A3H
    mov
    al,23H AX=3123H
    add
    ax,ax AX=6246H
    mov
    bx,826CH BX=826CH
    mov
    cx,ax CX=6246H
    mov
    ax,bx AX=826CH
    add
    ax,bx AX=04D8H
    mov
    al,bh AX=0482H
    mov
    ah,bl AX=6C82H
    add
    ah,ah AX=D882H
    add
    al,6 AX=D888H
    add
    al,al AX=D810H
    mov
    ax,cx AX=6246H


    2楼2013-04-10 21:32
    回复

      检测点2.1
      (2)
      只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
      mov ax,2 AX=2
      add ax,ax AX=4
      add ax,ax AX=8
      add ax,ax AX=16


      3楼2013-04-10 21:33
      回复

        检测点2.2
        (1)
        给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH 。
        解题过程:
        物理地址=SA*16+EA
        EA的变化范围为0h~ffffh
        物理地址范围为(SA*16+0h)~(SA*16+ffffh)
        现在SA=0001h,那么寻址范围为
        (0001h*16+0h)~(0001h*16+ffffh)
        =0010h~1000fh


        4楼2013-05-07 18:41
        回复

          检测点2.2
          (2)
          有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为 1001H ,最大为 2000H 。
          当段地址给定为 1001H 以下和 2000H 以上,CPU无论怎么变化偏移地址都无法寻到20000H单元。
          解题过程:
          物理地址=SA*16+EA
          20000h=SA*16+EA
          SA=(20000h-EA)/16=2000h-EA/16
          EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值
          EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值
          这里的ffffH/16=fffh是通过WIN自带计算器算的
          按位移来算确实应该为fff.fh,这里小数点后的f应该是省略了
          单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了
          如果根据位移的算法(段地址*16=16进制左移一位),小数点后应该是不能省略的
          我们可以反过来再思考下,如果SA为1000h的话,小数点后省略
          SA=1000h,EA取最大ffffh,物理地址为1ffffh,将无法寻到20000H单元
          这道题不应看成是单纯的计算题


          5楼2013-05-07 18:42
          收起回复