. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  大家都来做下这道题,我已经做了。  [待解决] 回复[ 4次 ]   点击[ 315次 ]  
wumao110
[帖 主]   [ 发表时间:2009-08-05 18:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-27 01:10
写出执行以下计算的指令序列,其中Z,W,X,R均为存放16位带符号数单元的地址。
要求:
     Z←W-(X+6)-(R+9)
其中←号表示赋值。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

下面是我的做法:
■方法一:assume cs:code
r segment
dw 0123h
x segment
dw 0456h
z segment
dw 0789h
w segment
dw 0abch


code segment
mov ax,x
add ax,6
mov bx,r
add bx,9
mov dx,w
sub dx,ax
sub dx,bx
mov z,dx
mov ax,4c00h
int 21h
code ends
end


※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

■方法二:assume cs:code

r segment
dw 0123h
x segment
dw 0456h
z segment
dw 0789h
w segment
dw 0abch


code segment
mov ax,x+6
mov bx,r+9
mov dx,w
sub dx,ax
sub dx,bx
mov z,dx




mov ax,4c00h
int 21h
code ends
end

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
■方法三:assume cs:code
r segment
dw 0123h
x segment
dw 0456h
z segment
dw 0789h
w segment
dw 0abch



code segment
mov ax,6x
mov bx,9x
mov dx,w
sub dx,ax
sub dx,bx
mov z,dx




mov ax,4c00h
int 21h
code ends
end

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

但是编译不过,我不知道是什么原因。下面是错误信息:

D:\masm>masm
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987.  All rights reserved.

Source filename [.ASM]: ww2
Object filename [ww2.OBJ]:
Source listing  [NUL.LST]:
Cross-reference [NUL.CRF]:
Open segments: W Z X R
ww2.ASM(19): error A2056: Immediate mode illegal

  50800 + 450304 Bytes symbol space free

      0 Warning Errors
      1 Severe  Errors
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
哪个高手,老师,专家告诉我怎么回事丫,有兴趣的学友也帮看看啦。非常谢谢~~
zcouyangpeng
[第1楼]   [ 回复时间:2009-08-06 07:38 ]   [引用]   [回复]   [ top ] 
荣誉值:35
信誉值:44
注册日期:2008-09-03 21:36
■方法三:assume cs:code 
r segment 
dw 0123h 
x segment 
dw 0456h 
z segment 
dw 0789h 
w segment 
dw 0abch 



code segment 
mov ax,6x--------? 
mov bx,9x--------? 
mov dx,w----------? 
sub dx,ax 
sub dx,bx 
mov z,dx-----------? 




mov ax,4c00h 
int 21h 
code ends 
end
zcouyangpeng
[第2楼]   [ 回复时间:2009-08-06 07:42 ]   [引用]   [回复]   [ top ] 
荣誉值:35
信誉值:44
注册日期:2008-09-03 21:36
■方法三:assume cs:code 
r segment 
dw 0123h 
x segment 
dw 0456h 
z segment 
dw 0789h 
w segment 
dw 0abch 
---------------以上全错 
r segment 
dw 0123h 
r ends

x segment 
dw 0456h
x ends
 
z segment 
dw 0789h
z ends 

w segment 
dw 0abch 
w ends
--------------------------------------

你的代码是哪国出品?慢慢来吧
wumao110
[第3楼]   [ 回复时间:2009-08-06 17:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-27 01:10
怎么错了,是格式吗?
luhuijk
[第4楼]   [ 回复时间:2009-08-13 10:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-08-04 16:31
mov ax,x 
add ax,6 
--------------------

mov ax,x
这是一个将X的段地址送AX
add ax,6这是做什么,题中的意思是要将X中的数据+6吗

关注ing
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved