|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
自己代码如下:
- assume cs:code,ds:data
- data segment
- db 'welcome to masm!'
- data ends
- code segment
- start:
- mov ax,data
- mov ds,ax
- mov ax,0b872h
- mov es,ax
- mov cx,16
- mov bx,0
- mov si,0
- mov di,0a0h ;如果要缩短代码这一步我们可以省略
- s:mov ax,[si]
- mov ah,02h
- mov es:[bx],ax
- mov ah,24h
- mov es:[bx+di],ax ;因为省略了DI定义的话这里就变成了es:[bx+0a0h],ax
- add di,di ;这里也可以省略了
- mov ah,71h
- mov es:[bx+di],ax ;因为省略了DI定义的话这里就变成了es:[bx+140h],ax
- inc si
- add bx,2
- sub di,0a0h ;这里也可以省略了
- loop s
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码 通过以上省略我们就省略了3行代码少了一个di的定义
作业以外的话题:
我觉得大家也可以用栈来写一下这个操作,栈的方法小甲鱼视频中有提到了我就不贴上来了- -
还有如果大家学汇编是以破解为目的来学的话,可以自己不看小甲鱼视频用栈的操作来写加深一下对栈的了解也好
不过我觉得要变成一个反汇编的高手的前提你也是一个写代码的高手(高级语言比如C++),代码写多了自己看一下自己程序的汇编代码然后把自己的程序反汇编从中去了解,我觉得这样的一个经验慢慢的累积才能成为一个反汇编的高手,本人目前也还是菜鸟来的大家共同进步努力吧
|
评分
-
参与人数 2 | 荣誉 +3 |
鱼币 +3 |
贡献 +3 |
收起
理由
|
狂潮丶
| + 1 |
+ 1 |
+ 1 |
热爱鱼C^_^ |
Dardy
| + 2 |
+ 2 |
+ 2 |
感谢楼主无私奉献! |
查看全部评分
|