两个汇编测试题!大家来做一下!

hao76762401 2010-06-05 11:41:15


1。在A1地址处有100个字节,今要求传送到A2处,分别用循环程序、含有串操作指令的程序及具有重复前缀的串指令程序实现。



2。将DX AX中的32位二进制数左移一位和右移一位的指令组程序写出来。



大家来写写程序!
...全文
100 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hao76762401 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sixways 的回复:]
我看到楼主的结贴率就不想回答,而且我还怀疑楼主的发帖动机
[/Quote]

我是论坛新手呀!怎么回怀疑我的发帖动机呢?晕!
都是为了交流学习的!不然浪费自己的时间浪费大家的时间干嘛!我没事找抽丫?
masmaster 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 hao76762401 的回复:]
引用 15 楼 masmaster 的回复:
引用 9 楼 hao76762401 的回复:
引用 7 楼 cotteam 的回复:
在实地址模式下,DX AX两个寄存器用来存储一个双字的数据。估计这才是楼主的意思吧。

恩是的!就是DX AX两个寄存器储了一个双字的数据。

原来如此


那麻烦你写写第二题~
[/Quote]
⊙﹏⊙b汗, 我学的是32位的, 16位的话还要考虑cf,sf等标志,我不会
hao76762401 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 masmaster 的回复:]
引用 9 楼 hao76762401 的回复:
引用 7 楼 cotteam 的回复:
在实地址模式下,DX AX两个寄存器用来存储一个双字的数据。估计这才是楼主的意思吧。

恩是的!就是DX AX两个寄存器储了一个双字的数据。

原来如此
[/Quote]

那麻烦你写写第二题~
masmaster 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hao76762401 的回复:]
引用 7 楼 cotteam 的回复:
在实地址模式下,DX AX两个寄存器用来存储一个双字的数据。估计这才是楼主的意思吧。

恩是的!就是DX AX两个寄存器储了一个双字的数据。
[/Quote]
原来如此
masmaster 2010-06-06
  • 打赏
  • 举报
回复
lengthof 用于返回整个变量的数据项
jkl231 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hao76762401 的回复:]
引用 5 楼 masmaster 的回复:
1,我用的是32位的指令
a:三种传送数据的方法
.data
add1 db 100 dup (9)
add2 db ?
.code
begin: mov ecx,lengthof add1
mov esi,offset add1
mov edi,offset add2
cld
rep movsb
;
a: movsb
loo……
[/Quote]

用的是32位的指令
cotteam 2010-06-06
  • 打赏
  • 举报
回复
ECX ESI EDI都是IA32处理器下的地址总线位数,也就是说是双字长度,而CX SI DI都是16位长。
我也是看了IA32 INTEL汇编语言这本书之后才知道的,大学里教的8086已经比较老了,应该在学的同时看看IA32的寄存器结构特性。
hao76762401 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 masmaster 的回复:]
1,我用的是32位的指令
a:三种传送数据的方法
.data
add1 db 100 dup (9)
add2 db ?
.code
begin: mov ecx,lengthof add1
mov esi,offset add1
mov edi,offset add2
cld
rep movsb
;
a: movsb
loop a
……
[/Quote]
你语句中的~ecx esi edi lengthof 我怎么没见过!
它们的意思就是cx si di length 的意思吗?怎么汇编语言有两种表达方式么?
呵呵~看来还是我见识少了呀!
hao76762401 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 masmaster 的回复:]
编辑自己的帖子还需要权限吗?
[/Quote]
不清楚能不能对自己的帖子编辑!
但我不能对你的帖子进行编辑!
呵呵~
hao76762401 2010-06-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cotteam 的回复:]
在实地址模式下,DX AX两个寄存器用来存储一个双字的数据。估计这才是楼主的意思吧。
[/Quote]
恩是的!就是DX AX两个寄存器储了一个双字的数据。
cotteam 2010-06-06
  • 打赏
  • 举报
回复
貌似应该是MOV,我写成MOVE了,呵呵,失误啊。
cotteam 2010-06-06
  • 打赏
  • 举报
回复
在实地址模式下,DX AX两个寄存器用来存储一个双字的数据。估计这才是楼主的意思吧。
masmaster 2010-06-06
  • 打赏
  • 举报
回复
编辑自己的帖子还需要权限吗?
masmaster 2010-06-06
  • 打赏
  • 举报
回复
1,我用的是32位的指令
a:三种传送数据的方法
.data
add1 db 100 dup (9)
add2 db ?
.code
begin: mov ecx,lengthof add1
mov esi,offset add1
mov edi,offset add2
cld
rep movsb
;
a: movsb
loop a
;
b: mov al,[esi]
mov [edi],al
inc esi
inc edi
loop b

exit 0
end begin

--------------------------------
2,dx,ax是16位通用寄存器, 能放32位数据吗?!
cotteam 2010-06-06
  • 打赏
  • 举报
回复
哈哈,没关心那么多,刚好看到一个之前学过的,就当练练手了。
电信用户 2010-06-06
  • 打赏
  • 举报
回复
我看到楼主的结贴率就不想回答,而且我还怀疑楼主的发帖动机
cotteam 2010-06-06
  • 打赏
  • 举报
回复
2.

MOVE CL,1 ;左移
SHL DX,CL
MOVE BL,AH
SHR BL,3
SHL AX,CL
ADD DL,BL

SHR AX,CL ;右移
MOVE BH,DL
SHL BH,3
SHR DX,CL
ADD AH,BH


第一题我看不明白,学得太浅了,我现在汇编才学了40多个指令,循环指令还没学到呢,不好意思啊,第二个题不知道写的正确否,到现在还没用过汇编器哈哈,就无从检验了,如有错误帮忙指出,谢谢。

21,458

社区成员

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

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