dutao574424314 发表于 2011-10-20 19:21:50

监测点6.1 2个题目。求解

问题如下。。。。。。。。。。。。。。。。
s: mov ax,                                    ; 指令意思 mov ax,ds:. ds的内容未知。传递给ax                                       
    mov cs:,ax                                 ; 通过ax将从ds:获得数据传送给 cs:.问题ds内容未知。貌似错误了;
    add bx,2
    loop s


我理解的正确指令是   s: mov ax,cs:      
                                    mov :ax
                                    add bx,2
                                    loop s

第二题的内容我感觉也是错的。
                                    s:   push cs:
                                          pop
                                          add bx,2
                                          loop s
难道是书本错了。。还是我得思考方式错了。求解

yuanc 发表于 2011-10-20 19:49:28

看清楚题意先!原题是要把0:0到0:15之间的单元的内容给程序中数据的位置,也就是说ds是0!
然后你的第二条指令格式是不是错了是 mov ,ax的吧!
你这样的话就是 把 程序 中的 数据 传送 到 0:0到0:15之间的单元!

边缘人 发表于 2011-10-20 22:04:01

一针见血,2楼给力!

掌心的呵护 发表于 2011-10-21 19:13:05

C:\Users\lenovo\Desktop\C语言\1.jpg
ds上面已经赋值为0
第二个,你写错了吧?应该是 push
                                        pop cs:

cyht33 发表于 2011-10-22 14:13:46

请楼主先看下6.1第一题的代码:
mov ax,0
mov ds,ax
已经把ds复制为0了

第二题你写错了,应该是楼上说的:
push
pop cs:
这2行代码的意思是把代码段为ds,偏移地址为bx,内存地址处的内容入栈,然后出栈,
将栈中的数据覆盖到代码段为cs,偏移地址为bx的内存地址的内容中。
实现了ds:中的数据覆盖到cs:中
页: [1]
查看完整版本: 监测点6.1 2个题目。求解