+ -
当前位置:首页 → 问答吧 → 不胜感激,几个对于高手来说很简单的事。

不胜感激,几个对于高手来说很简单的事。

时间:2011-05-19

来源:互联网

1、 编写程序,将Menu中每个单词的第一个字母改为大写字母。Menu 定义如下:

  Menu db ‘display’

  ‘edit ’

  ‘search ’

  ‘Return ’

2、 试编制程序统计23H、18H、0B8H、63H、27H、15H、78H、88H、37H、58H这10个字节数据中大于55H的个数,并将大于55H数据的和存入字变量SUM中。

3、 编写一个win32汇编程序,要求把一个指定的十六进制整型数据转换成对应的字符串形式。 

4、 将第3题改写成子程序,编写子程序,实现在massagebox中对数值类型变量的输出。使用VC++的调试器观察堆栈结构的建立和撤销过程,同时查看子程序参数的传递过程和引用方式。参考课本p155、p156。

5、 阅读并分析以下程序,分别列出执行语句(1)、(2)、(3)后堆栈的地址和单元内容。

.data

N EQU 10

SUM DWORD 0

NUM1 DWORD 1,2,3,4,5,1,2,3,4,5

.code  

LISTADD PROC para1:Dword, para2:Dword  

  LOCAL LOCALSUM: DWORD

  LOCAL LOCALTEMP:DWORD

  PUSH EDI

  MOV EDI,0  

  PUSH EAX

  MOV EAX,0  

  MOV LOCALSUM, EAX

  PUSH EBX

  MOV EBX, para1  

  PUSH ECX

  MOV ECX, para2  

STARTADD: ADD EAX, [EBX+EDI*4]

  INC EDI

  DEC ECX

  JG STARTADD

  MOV LOCALSUM, EAX (1)

INVOKE LISTADDAGAIN , LOCALSUM  

MOV LOCALSUM,EAX

POP ECX

  POP EBX

  MOV [ESP], EAX

  POP EAX

  POP EDI

  RET  

LISTADD ENDP

LISTADDAGAIN PROC para1:Dword  

  LOCAL LOCALSUM2: DWORD  

  PUSH EAX

  MOV EAX,para1  

  ADD EAX,10H

  MOV LOCALSUM2, EAX (2)

  MOV [ESP], EAX  

  POP EAX

  RET  

LISTADDAGAIN ENDP

START:

  invoke LISTADD, offset NUM1, N  

  mov SUM, EAX (3)

invoke ExitProcess,NULL

END START

要求

1、提交调试正确的源程序;

2、提交5题的结果。

作者: fangzepan   发布时间: 2011-05-19

本来我想回答你的,但是你要的是高手,那我看就算了HOHO.

作者: va_zaixuexi   发布时间: 2011-05-19

引用 1 楼 va_zaixuexi 的回复:
本来我想回答你的,但是你要的是高手,那我看就算了HOHO.

不要嘛。帮帮忙撒。谢谢啦,。

作者: fangzepan   发布时间: 2011-05-19

引用 1 楼 va_zaixuexi 的回复:
本来我想回答你的,但是你要的是高手,那我看就算了HOHO.

好人一生平安、

作者: fangzepan   发布时间: 2011-05-19

置顶帖推荐给你。。。

作者: Night_Dystar   发布时间: 2011-05-19

引用 4 楼 night_dystar 的回复:
置顶帖推荐给你。。。

不愿意答的别来打酱油。,不知道我们多急么。

作者: fangzepan   发布时间: 2011-05-19

本坛不欢迎作业贴

作者: Areslee   发布时间: 2011-05-19