首页 > 编程语言 >【汇编】王爽《汇编语言(第3版)》相关习题

【汇编】王爽《汇编语言(第3版)》相关习题

时间:2023-07-31 12:12:33浏览次数:36  
标签:10H 汇编语言 地址 偏移 FFFFH 20000H 习题 SA 王爽

P25 检测点2.2

(1)

偏移地址的取值范围在 0H ~ FFFFH 之间。

仅通过变化偏移地址寻址,根据物理地址计算公式:段地址 * 10H + 偏移地址。
已知段地址固定 0001H,即最小物理地址为 00010H,最大地址为 1000FH。

(2)

设偏移地址为 x,即公式为:SA * 10H + x = 20000H。

偏移地址的取值范围在 0H ~ FFFFH 之间。

最大值

当最大段地址时,偏移地址x为0。
代入公式:SA*10H + 0 = 20000H,简化后 SA = 20000H / 10H,SA = 2000H。

SA 最大为 2000H。

最小值

当最小段地址时,就要用最大偏移地址来代入。
代入公式:SA*10H + FFFFH = 20000H,简化后 SA = (20000H - FFFFH) / 10H。
求出值是 1000H,但这个结果是错的。

原因

假设段地址是1000H,那么久违反了段地址要为10H的倍数这条准则。

这就需要调整偏移地址的值,因为FFFFH是最大了,只能往下调整。

  1. 20000H - FFFFH = 10001H,十进制是 65537,除以 10H 有小数所以不是倍数。
  2. 20000H - FFFEH = 10002H,十进制是 65538,除以 10H 有小数所以不是倍数。
  3. 20000H - FFFDH = 10003H,十进制是 65539,除以 10H 有小数所以不是倍数。
  4. ...
  5. 20000H - FFF0H = 10010H,十进制是 65538,除以 10H 整除。所以这个偏移地址FFF0H才是最大的偏移地址。

求得实际最大偏移地址 FFF0H,代入上述公式中(SA = (20000H - FFF0H) / 10),求得值为 1001H。

SA 最小为 1001H。

反过来思考

当段地址定为多少,CPU无论怎么变化偏移地址都无法寻到 20000H。

小于 1001H,或大于2000H都无法寻到20000H单元。即此题段地址最小不能小于1001H,最大不能超过2000H。

标签:10H,汇编语言,地址,偏移,FFFFH,20000H,习题,SA,王爽
From: https://www.cnblogs.com/hatsuzuki/p/17588450.html

相关文章

  • 数组复习片+练习题
    数组的遍历定义一个数组,求和int[]arr={1,2,3,4,5,6,7};intsum=0;for(inti=0;i<arr.length;i++){sum=sum+arr[i];}System.out.println(sum);定义一个数组,统计数组里面一共有多少能够被3整除的数字:in......
  • 2.顺序结构&&习题
    2.顺序结构&&习题一、表达式1.四则运算a=6b=2print(a+b)#输出:8print(a-b)#输出:4print(a*b)#输出:12print(a/b)#输出:3.02.取余%取余,余数的符号(正负),随后面的数print(6%2)#输出:2print(7%2)#输出:1print(-7%2)#输出:1print(7%-2)#输出:-1print(-7%-2)#输出:-13.......
  • 2.顺序结构&&习题
    2.顺序结构&&习题一,表达式1.四则运算a=6b=2print(a+b)#输出:8print(a-b)#输出:4print(a*b)#输出:12print(a/b)#输出:3print(5/2)#输出2.52.取余%取余,余数的符号(正负),随后面的除数print(6%2)#输出:0print(7%2)#输出:1print(-7%2)#输出:1prin......
  • 3.分支结构and习题
    3.分支结构and习题一、语法1.if语句格式:if条件:条件成立执行的语句if6>3:print("条件成立")2.if-else语句格式:if条件:条件成立的语句else:条件不成立的语句if6>3:print('条件成立')else:print('条件不成立')3.if-eli......
  • 3.分支结构and习题
    3.分支结构and习题一.语法1.if语句格式:if条件: 条件成立执行的语句if6>3: print("条件成立")2.if-else语句格式:if条件: 条件成立执行的语句else: 条件不成立执行的语句if6>3:print('条件成立')else:print('条件不成立')3.if-elif-......
  • C语言分支与循环(12)--- 练习题
    一.练习题1.给定两个数,求这两个数的最大公约数,如求24与18的最大公约数方法:假设m=24n=181.将24与18进行取模,得到的结果是商1,余数为6,有余数证明并没有被整除2.将18再模6,可以得到商3余0,所以我们可以得到6是我们的最大公约数3.如果声明一个变量r来接收数据,如果r=0则代表n为最大公约数,......
  • for循环语法-习题
    for循环-习题for循环求和【题目描述】利用for循环。计算输出1+2+3+...+n的和。【输入】输入n。【输出】如题述,之和。【输入样例】10【输出样例】55【提示】【数据规模及约定】对于100%的数据,1≤n≤100。inta,b=0;cin>>a;for(intn=1;n<=a;n++){ b+=n;}......
  • 浙大版《C语言程序设计实验与习题指导(第4版)》题目集(持续更新)
    C语言练习实验1-1HelloWorld!要求:输出一个短句“HelloWorld!”。答案:#include<stdio.h>intmain(){printf("Helloworld!\n");return0;}实验1-2简单求阶乘问题要求:在一行中给出一个不超过12的正整数N,在一行中输出阶乘的值。答案:#in......
  • C/C++初学者练习题库(Dev-C++开发环境)
    C/C++初学者练习题库(Dev-C++开发环境)几年前制作的一套C/C++程序题库,其目的是为了使学生在课堂上熟悉掌握C/C++基础知识。程序自带检验和错误反馈功能,并有积分激励机制,当时学校机房电脑只配置了Dev-C++开发环境,所以为了便于学生使用,题库的设计也就以在Dev-C++开发环境上使用......
  • 5.3条件测试练习题
      ......