一个汇编的入门问题

yanwei119 2007-03-07 08:34:14
在8086中,段地址的起始地址是16的倍数是什么意思?怎么看出它的16的倍数?
...全文
440 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaohongjun 2007-03-15
  • 打赏
  • 举报
回复
地址的物理 = 段地址 * 16 + 偏移地址
hushaojing 2007-03-14
  • 打赏
  • 举报
回复
请问这个程序哪里错了,,怎么显示都不正常的??谢谢高手解答了
hushaojing 2007-03-14
  • 打赏
  • 举报
回复
ORG 0000H
LJMP MAIN
MAIN: MOV P2,#0
START:MOV DPTR,#TAB
MOV R0,#0
MOV R1,#01H
NEXT: MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOV P2,A
ACALL DAY
INC R0
RL A
MOV R1,A
CJNE R1,#10H,NEXT
SJMP START
DAY:MOV R6,#10
DL2:MOV R7,#7DH
DL1:NOP
NOP
DJNZ R7,DL1
DJNZ R6,DL2
RET
TAB:db 0C0H,0F9H,0A4H,0B0H
END
feng1976 2007-03-12
  • 打赏
  • 举报
回复
把他想成一个数学问题,就很简单了
是一个数的倍数,就是一定能被这个数整除啊!

是16的倍数,那么十六进制表示的最后一位一定为0,例如23A0H,0002H。

简单吧

短寄存器16位,再乘以16得到的物理地址当然是16的倍数了!
ever_ever 2007-03-12
  • 打赏
  • 举报
回复
8086内部寄存器都是16位的,但它的地址线是20位的,为了用16位的寄存器表示20位的地址,8086规定只能把地址的低四位为0的地址作为段地址,即cs中为实际地址的高16位,最后四位默认为0,从而解决用16位寄存器表示20位地址的问题
www_adintr_com 2007-03-08
  • 打赏
  • 举报
回复
实际地址 = 段地址 * 16 + 偏移

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧