汇编语言基本问题

2024-11-15 12:36:26
推荐回答(3个)
回答1:

加方括号并不是就成了存储器,加方括号是为了让CPU寻址。
[1200H]告诉CPU,去1200H号内存单元把数据取回来。
一般数据都要有承载的介质。
MOV [1200H],AL是让CPU把AL里的数据放到1200H号内存单元。
[BX]或[DI]:“CPU,去把数据取回来,地址在BX或DI里呢。”
MOV AX,[BX][DI]就有点麻烦,它不是直接把地址写出来,而是先去到BX里写的地址,然后再走几步路,到底走多少步,就写在DI里。

回答2:

楼下对内存单元的认识上是错误的。偏移地址需配合段地址才能形成内存单元的地址。内存单元地址:((ds)*16+(偏移地址))
首先,你应该知道十六进制数值外加[]代表的是一个指定内存单元内存储的数值。其次,你要知道[]内的十六进制是个偏移地址,需要和段地址配合构成内存单元的一个编号,可以将该编号形象的比喻成房间号。最后你要明白内存单元是字节单元还是字单元可以通过传送数据的寄存器来确定。希望对你有所帮助。

回答3:

MOV R0,#30H ;(R0)=30H
MOV A,@R0 ;(A)=40H
MOV R1,A ;(R1)=40H
MOV B,@R1 ;(B)=20H
MOV @R1,P1 ;(40H)=55H
MOV 10H,#20H; (10H)=20H
MOV 30H,10H;(30H)=20H
所以(30H)=20H,(40H)=55H,(20H)=0FFH
(P1)=55H,(A)=40H,(R1)=40H,(10H)=20H
请参考