回 帖 发 新 帖 刷新版面

主题:【求助】几个指令判断题

以下都是在8086下


MOV DS,BP为什么错了?是不是目标寄存器不能用段寄存器?

MOV MYDAT[BX][SI],ES:AX是不是有多处错误?如果看作寄存器寻址,就不能加ES:;如果看作寄存器间接,AX要加括号;就算源操作数这边没问题,可是还是错,因为这样就变成了“存储器到存储器”,这是不允许的

假如AB是一个已定义的变量,则JMP AB是错误的,那我想知道:
如果指令是AAA DB AB,是把A和B的ASCII码存储吗?是不是A在低位,B在高位?
如果指令是AAA DW AB,又是如何?

难道每次定义数据都要用标号吗?上题中的标号AAA在C语言中相当于什么?我印象中在C语言里定义数据是不需要标号的啊


问题太菜,希望大家别笑话

回复列表 (共8个回复)

沙发

偶都不知道为什么错。。。

板凳

回家又看了下书,我突然发现我把变量和标号搞混淆了

不过MOV DS,BP为什么错我还是不清楚

3 楼

MOV AX,BP
MOV DS,AX
这样的吗?

4 楼

[quote]MOV AX,BP
MOV DS,AX
这样的吗?[/quote]

直接可以的吧??@@
DEBUG里可以直接输送啊....

还有那个AAA DW AB,如果是ASCII码的话,AB应该加上' '吧??

LX清楚的请指点一下下~~~~

5 楼

MOV DS,BP错了么?怎么也看不出来.

6 楼

Mark

7 楼

直接可以的吧??@@
DEBUG里可以直接输送啊....

还有那个AAA DW AB,如果是ASCII码的话,AB应该加上' '吧??

LX清楚的请指点一下下~~~~[/quote]
总之我是看不出到底哪里错了,不过这是课本上的习题(IBM PC汇编语言程序设计 第2版 清华大学出版社)

至于AAA DW AB,其实我是想,在C语言里,定义一个变量AB的话,可以定义成比如AB=3,如果在汇编里应该是AB DB 3,那么这个AB在内存里是怎么存放的?3又放在哪里?


PS:我已经离开学校了,当然,我也不是清华的,呵呵

8 楼

AAA是个保留字

我来回复

您尚未登录,请登录后再回复。点此登录或注册