几个微机原理与接口技术的题目紧急求助!!

1.若有数据区的开始地址为A7F0H:2B40H,则该数据区的首字单元和32个字的末字单元的物理地址分别为多少?

2.若[DS]=6100H,则当前数据段的起始地址是多少,末地址是多少?

3.设一个字节数据X存放在AL寄存器中,说明下列程序的功能(逐条说明).
XOR AH, AH
SAL AX, 1
MOV BX, AX
MOV CL, 2
SAL AX, CL
ADD AX, BX
能对前两个题目进行一下详细的解释不?

1,首字单元AAA40H 末字单元AAA80H
A7F00+2B40=AAA40
为什么在A7F0后+个0这个老师应该上课讲过,这是因为8086微处理器与内存存储器之间所有信息交换都要使用20位物理地址,而在程序中所涉及的地址都是16位的逻辑地址,所以在计算时是通过将16位段基址左移4位再加上16位段内偏移量而生成的
AAA40+40H=AAA80
32个字转换成十六进制就是20H个字,换成字节就是40H个字节
2,起始地址是61000H,末地址是70FFFH
61000没什么好解释了,同上
段内最大偏移量是0FFFFH
所以70FFFH=61000H+0FFFFH
3,
XOR AH, AH ;AH清0
SAL AX, 1 ;AX算数左移1位
MOV BX, AX ;把AX放到BX(BX是原始AX的2倍)
MOV CL, 2 ;CL=2
SAL AX, CL ;再把AX算数左移2位(此时AX是原来的8倍)
ADD AX, BX ;两数相+
其实就是8x+2x=10x,算一个数的10倍
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答