20CN网络安全小组第一代论坛
发表新主题  发表回复

个人资料 | 社区目录 用户登录 | | 论坛搜索 | 常见问题 | 论坛主页
  下一个最老的主题   下一个最新的主题
» 20CN网络安全小组第一代论坛   » 电 脑 技 术   » 编程破解   » 学习汇编的好帮手(第十一篇)

   
作者 标题: 学习汇编的好帮手(第十一篇)
第007元素
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
crlf segment
assume cs:crlf
mov dl,0dh ;carriage return
mov ah,2 ;display function
int 21h ;call DOS
mov dl,0ah ;linefeed
mov ah,2 ;display function
int 21h ;call DOS
int 20 ;return from crlf
crlf ends
end

※ 现在我们就可以将 BINIHEX 、 DECIBIN 及 CRLF 等模组合并
 成一个完整的大程式了。

※ 首先,我们必须将这三个模组程式改成『程序,Procedure』,
 然後,再写一段简短的小程式来轮流呼叫每一个程序。
※ 所谓程序是由一群组合语言指令集合而成,通常用於执行特定
 的、定义完整的工作,在电脑语言中,常被称做『副程式』。

crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp

※ 类似 SEGMENT 与 ENDS 虚拟指令,PROC 与 ENDP 成对出现,
 用来识别并定义一个程序。
※ 其实,PROC 真正的作用只是告诉组译器∶所呼叫的程序是
 属於近程(NEAR)或远程(FAR)。

※ 一般的程式是由 DEBUG 直接呼叫的,所以用 INT 20 返回,
 对於用 CALL 指令所呼叫的程序而言,则必须改用 RET 。
※ 返回指令 RET 会把控制权转移到堆叠顶端所指定的位址,而
 该位址是由呼叫此程序的 CALL 指令所放入的。

;************************************************
decihex segment ;DECIHEX -- Main Program
assume cs:decihex
repeat: call decibin ;keyboard to binary
call crlf ;print cr and lf
call binihex ;binary to screen
call crlf ;print cr and lf
jmp repeat ;do it again
;------------------------------------------------
decibin proc near ;PROCEDURE TO CONVERT DEC
............ ; ON KEYBD TO BINARY AND
decibin endp ; LEFT RESULT IN BX

;------------------------------------------------
binihex proc near ;PROCEDURE TO CONVERT BIN
............ ; NUMBER IN BX TO HEX ON
binihex endp ; CONSOLE SCREEN
;------------------------------------------------
crlf proc near ;PROCEDURE TO PRINT
............ ; CARRIAGE RETURN
endp ; AND LINEFEED
;------------------------------------------------
decihex ends
;************************************************
end

※ CALL 指令用来呼叫一个副程式(程序),并将控制权转移到
 运算元内的副程式位址,同时将 CALL 的下一指令位址定为
 『返回位址』,并存入堆叠中。
※ CALL 可分为近程(NEAR)及远程(FAR)两种∶

1.NEAR∶IP 暂存器的内容被放入堆叠中。
用於程式与程序在同一记忆区段中。
2.FAR ∶CS 暂存器与 IP 暂存器的内容依顺序存入堆叠中。
用於程式与程序在不同一记忆区段中。

※ 探讨了组合语言程式设计的较佳流程,希望能奠定您
 独立设计的基础,而如何利用模组化的观念来设计程式,则
 全仰赖您平时苦练、多看的苦功,只要再多参考相关的书籍
 ,您必可从范例中获取的更多的应用技巧,祝您成功。

THE END
全文完

IP: 已记录

 
发表新主题  发表回复 关闭主题 突出主题 移动主题 删除主题 下一个最老的主题   下一个最新的主题
 - 适于打印的主题视图
转到:
联系我们 | 20CN网络安全小组

Powered by Infopop Corporation
UBB.classic™ 6.5.0
NetDemon修改版 1.5.0, 20CN网络安全小组 版权所有。