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

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

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


图标 1  发表于         编辑/删除帖子   引用原文回复  
※ 当我们在写组合语言程式的时候,通常不会直接将十六进位的
 位元组(机器码)放入记忆体中,而是打入一串『助忆符号』
 (Mnemonic Symbols),这些符号比十六进位数更容易记住。
※ 助忆符号是以2或3个字元的名称来代表某个组合语言指令
 ,以告诉微处理机应执行何种运算。
※ 也就是说,助忆符号所构成的组合语言是为人类而设计的,
 而机器语言是针对 PC 的特性而设计的。
※ 事实上,8088 微处理机真正所能读取和了解的并非十六进位
 数值,而是二进位数或是位元形式;十六进位数只是使人类
 更易了解二进位数字的一种表示方式而已。

※ 还记得 ASCII 码?现在,我们来剖析一个可以将所有的 ASCII
 码显示在萤幕上的程式。
※ 请将存在磁碟中的程式 ASCII.COM 载入并执行。
1.请输入 DEBUG ASCII.COM
2.请输入 U100,10E

1FED:0100 B90001 MOV CX,0100
1FED:0103 B200 MOV DL,00
1FED:0105 B402 MOV AH,02
1FED:0107 CD21 INT 21
1FED:0109 FEC2 INC DL
1FED:010B E2F8 LOOP 0105
1FED:010D CD20 INT 20
-

※ INC∶递增指令,每次将资料暂存器 DL 内的数值加 1 。
※ LOOP∶回圈指令,将执行次数放入计数暂存器 CX 中,每执行
 一次 LOOP 指令,CX 的内容值减 1 ,并跳回回圈的开头位址
 (105),直到 CX 为 0 。
1.请输入 G

※ 当我们想在萤幕上任意地显示字串(例如∶开机时电脑会向您
 问侯),则可以使用 DOS 的 9H 号函数服务常式。
※ 请输入下列程式,存入磁碟(HALLO.COM)中,并执行看看∶
1.请输入 A100 3.请输入 MOV AH,9
2.请输入 MOV DX,109 4.请输入 INT 21

5.请输入 INT 20
6.请输入 DB 'HOW ARE YOU, SU$'

※ 列印字串功能∶DOS 的 09h 号函数服务。
※ 输入∶AH=9DS X = 字串的启始位址
※ 执行∶INT21结果∶字串显示在萤幕上
DX∶字串的偏移位址,即实际的启始位址。
DS∶字串的段位址,DEBUG 会自动检查其值,目前不必管它。

※ 在组合语言中,有两种不同的指令∶
1.正规指令∶如 MOV 等,是属於微处理机的指令,用来告诉 8088
微处理机在程式执行时应做些什麽,所以它会以运
算码(OP-code)的方式存入记忆体中。

2.虚拟指令∶如 DB 等,是属於 DEBUG 等组译器的指令,用来
告诉组译器在组译程式时应做些什麽。
※ DB(Define Byte)指令用来告诉 DEBUG 将其後面单引号内的
 所有字元对应的位元组(ASCII 码)放入记忆体中。

※ 使用 9H 功能列印的字串必须以 $ 符号结尾。
※ 想查看 DB 虚拟指令将那些位元组放入记忆体时,使用U命令
 并没有太大的用处,此时改用D命令则可得到较佳的效果。
5.请输入 U100,118
6.请输入 D100,17F

1FED:0100 BA0901 MOV DX,0109
1FED:0103 B409 MOV AH,09
1FED:0105 CD21 INT 21
1FED:0107 CD20 INT 20
1FED:0109 48 DEC AX
1FED:010A 6F DB 6F
1FED:010B 7720 JA 012D
1FED:010D 61 DB 61
1FED:010E 7265 JB 0175
1FED:0110 20796F AND [BX+DI+6F],BH
1FED:0113 752C JNZ 0141
1FED:0115 205355 AND [BP+DI+55],DL
1FED:0118 2400 AND AL,00
-

1FED:0100 BA 09 01 B4 09 CD 21 CD-20 48 6F 77 20 61 72 65 ......!. How are
1FED:0110 20 79 6F 75 2C 20 53 55-24 00 00 00 00 00 00 00 you, SU$.......
1FED:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1FED:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1FED:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1FED:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1FED:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1FED:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1FED-

IP: 已记录

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

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