| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 419 人关注过本帖
标题:求鸡毛,求有容
只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
已结贴  问题点数:20 回复次数:8 
求鸡毛,求有容
date segment
mm db 08Bh,0E5h,055h,08Bh,0ECh,083h,0ECh,0Ch,0B8h
   db 063h,06Fh,06Dh,06Dh,06Dh,06Dh,06Fh,063h,089h
   db 045h,0F4h,0B8h,061h,06Eh,064h,02Eh,089h,045h
   db 0F8h,0B8h,063h,06Fh,06Dh,022h,089h,045h,0FCh
   db 033h,0D2h,088h,055h,0FFh,08Dh,045h,0F4h
   db 050h,0B8h,024h,098h,01h,078h,0FFh,0D0h
xx dw 2 dup(?)
date ends
code segment
     assume cs:code,ds:date
start:  mov ax,date
       mov ds,ax
       mov cx,offset xx-offset mm
       mov si,offset mm
       mov ax,0000h
       mov es,ax
       mov di,0200h
       cld
       rep movsb
       mov bx,offset xx
       mov word ptr [bx],0200h
       mov word ptr [bx+2],0
       jmp dword ptr [bx]
      
       mov ah,4ch
       int 21h
code ends
   end start

求解这个出错 信息说的是哪个地方指令无效 谢谢

[ 本帖最后由 zhu224039 于 2012-11-21 22:26 编辑 ]
2012-11-21 19:49
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
错误信息是啥啊
2012-11-21 21:37
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:5 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-21 22:16
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 2楼 zklhp
指令出错

我要成为嘿嘿的黑客,替天行道
2012-11-21 22:27
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
1. length指令对包含dup()指令的数据段能返回相应的分配长度 其他的只能返回1
    你那个mov cx,length mm相当于 mov cx, 1吧 。
2. 即使把mov cx, length mm 改成一个正确的长度 比如mov cx, 52
    但是被调用的中断内容中必须有返回主调函数的命令 如 mov ax, 4c00h  int 21h
     而这个语句的反汇编16进制代码是B8 00 4C CD 21 你mm后面那一大段没这个东西
    可能是你随便写的东西吧 不构成一个被调函数 修改中断向量表后 用它来填充中断内容
    能不出错?
3. 你的意图是什么?在一个中断里写乱码?不懂这些哦



[ 本帖最后由 有容就大 于 2012-11-21 23:04 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-11-21 22:28
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
嘿嘿 你说的问题我早改过来了
mov cx,offset xx-offset mm  就可以了

上面的是一段机器码  不过检验了 是错的
呵呵
就是直接写机器码到制定的内存中去
然后设置程序入口 转到那去执行的意思

我要成为嘿嘿的黑客,替天行道
2012-11-21 22:50
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:5 
回复 6楼 zhu224039
没怎么研究这个...

梅尚程荀
马谭杨奚







                                                       
2012-11-21 22:51
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
你试试这个 可以哦
程序代码:
;#Mode=DOS
assume cs:code
code segment
;mm db 08Bh,0E5h,055h,08Bh,0ECh,083h,0ECh,0Ch,0B8h
;   db 063h,06Fh,06Dh,06Dh,06Dh,06Dh,06Fh,063h,089h
;   db 045h,0F4h,0B8h,061h,06Eh,064h,02Eh,089h,045h
;   db 0F8h,0B8h,063h,06Fh,06Dh,022h,089h,045h,0FCh
;   db 033h,0D2h,088h,055h,0FFh,08Dh,045h,0F4h
;   db 050h,0B8h,024h,098h,01h,078h,0FFh,0D0h
mm  db 0b4h, 01h, 0cdh, 21h, 0b4h, 01h, 0cdh, 21h, 0b8h, 00h, 4ch, 0cdh, 21h
xx dw 2 dup(?)

start:  mov ax,cs
       mov ds,ax
       mov cx, offset xx-offset mm
       mov si,offset mm
       mov ax,0000h
       mov es,ax
       mov di,0200h
       cld
       rep movsb
       mov bx,offset xx
       mov word ptr [bx],0200h
       mov word ptr [bx+2],0
       call dword ptr [bx]
     

       mov ah, 01h
       int 21h
       mov ah,4ch
       int 21h
code ends
   end start


梅尚程荀
马谭杨奚







                                                       
2012-11-21 23:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
传说中的硬编码???

DO IT YOURSELF !
2012-11-22 12:15
快速回复:求鸡毛,求有容
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020995 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved