zoukankan      html  css  js  c++  java
  • 汇编语言第二章节检测2-2

    检测点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     

    检测点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单元

    这道题不应看成是单纯的计算题

  • 相关阅读:
    解决硬盘分区无法挂载的问题
    Java EE学习记录(一)
    Netbeans 8.2启动参数含义及配置
    汉化CodeBlock
    linux解决无法打开资源管理器
    netbean下搭建mariadb数据库
    mariadb中执行数据库脚本的方法
    修复受损的linux引导
    修复无法启动的mariadb
    no update
  • 原文地址:https://www.cnblogs.com/Zblogs/p/3280655.html
Copyright © 2011-2022 走看看