首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

自学王爽版汇编语言,请问3个有关问题

2012-02-12 
自学王爽版汇编语言,请教3个问题使用的是masm 5.0 link3.61.运行程序时可以用g命令执行到指定位置,那么直

自学王爽版汇编语言,请教3个问题
使用的是masm 5.0 link3.6
1.运行程序时可以用g命令执行到指定位置,那么直接用g命令把一段程序中的int 21h执行完可以吗?
2.一道题(王爽-汇编语言第二版 检测点6.1(2)):下面程序实现一次用内存0:0~0:15单元中的内容改写程序中的数据,数据传送用栈来进行,栈空间设置在程序内,填空完成程序:
assume cs:code
code segment
  dw 0123h,0456h,789h,0abch,0defh,0fedh,0cbah,0987h
  dw 0,0,0,0,0,0,0,0,0,0
start:mov ax,cs
  mov ss,ax
  mov sp,36
   
  mov ax,0
  mov ds,ax
  mov bx,0
  mov cx,8
s:push [bx]
  pop cs:[bx]  
  add bx,2
  loop s

  mov ax,4c00h
  int 21h
code ends
end start
这样做对吗?按道理来说没错,为什么最后几个数据不能实现?
3.还是上面的程序,将可执行文件f1.exe载入内存并跟踪:
-d0:0 f
0000:0000 68 10 A7 00 8B 01 70 00-16 00 E2 06 8B 01 70 00 h.....p.......p.
-d17e1:0 f
17E1:0000 23 01 56 04 89 07 BC 0A-EF 0D ED 0F BA 0C 87 09 #.V.............
执行mov ax,cs
-d0:0 f
0000:0000 68 10 A7 00 BB 13 24 12-16 00 E2 06 B1 13 24 12 h.....$.......$.
为什么d0:0 f的数据会变?怎么避免?

搜索汇编语言论坛,就这儿最大了,希望知道的老师们答复啊,谢谢

[解决办法]
第三题用D命令查看的是系统的内存区域,该区域不能写,只能读。
[解决办法]
1 g 可以直接执行完一般的 int中断

2 不要用g指令,用t或p指令。
[解决办法]
第一题看不懂;

第二题:你的sp 都是错误的,应该是32吧

第三题:这段内存的内容是什么本来就不确定的,又不一定是你的程序所在地。。随时会变的。

热点排行