《汇编语言》王爽版 学习笔记(精辟的第十一章总结完毕)

2026/1/21 7:46:40

ShowStr: ; 显示字符串 push bp mov bp,sp push ax push bx push cx push dx push si push di

mov ax,0b800h mov es,ax xor ax,ax mov dx,[bp+4+4] mov al,160 mul dh mov si,ax mov ah,0 mov al,2 mul dl add si,ax xor di,di mov bx,[bp+4] mov cx,[bp+4+2] st_sh: cmp cx,di je over_sh mov dl,[bx+di] mov es:[si],dl inc si

mov dx,[bp+4+6] mov es:[si],dl inc si inc di jmp st_sh over_sh: pop di pop si pop dx pop cx pop bx

pop ax mov sp,bp pop bp ret start: mov ax,stack mov ss,ax mov sp,2*20 mov ax,data mov ds,ax

mov bx,offset szTest push bx

call sizeof ; 求长度 参数 字符串地址 mov _size,ax mov ax,2h push ax mov ax,405h push ax

push _size mov bx,offset szTest push bx

call ShowStr ; 显示原字符串 参数 字符串地址,字符串长度,行列,文字属性 push _size

mov bx,offset szTest push bx

call ChangeSmallToBig ; 大小写转化 参数 字符串地址,长度 mov ax,2h push ax mov ax,505h push ax

push _size mov bx,offset szTest push bx

call ShowStr ; 显示转化后的字符串 参数 字符串地址,字符串长度,行列,文字属性

mov ax,4c00h int 21h code ends end start

简单模块化了一下 感觉有点像用ASM32来写ASM16的程序 反倒是把小函数给复杂化了

显示字符串函数中 其实没必要加上 那个长度的参数 取每一位 然后test一下就OK

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

人生的价值 不在于你能做什么 而在于你做了些什么

My fourm: www.crackprimer.com

PYG管理团队欢迎您的加入--广泛招募版主

TOP

得周一才能更新 这两天出去玩了

Nisy

PS:使用某些指令时,寄存器的任务是提供给相匹配指令数据,其他时寄存器其实是给我们可用的空间和暂存器,不要让众多的寄存器成为我们的负担。

------------------------------------------------------------------------------------

第九章 和 第十章 是转移指令

UID

2198 精华

69 威望

8662 在线时间

2615 小时 最后登录

2010-12-10

修改IP 或者修改CS和IP的指令称为转移指令

首先来看JMP指令的格式 JMP 之后跟的地址只有三种:REG、标号、内存数据 jmp REG

jmp short ptr 标号 (8位) // 默认的是 short ptr jmp near prt 标号 (16位) jmp far prt 标号 (32位)

jmp word ptr XX // 默认的是 word ptr jmp dword ptr XX

而 XX 是什么呢? 该内存数据就是我们常说的指针

lpsh dw ?

总坛主

sh:

mov lpsh,offset sh ……

jmp word ptr lpsh // 其实也可以写成 jmp lpsh 默认的类型就是 word ptr

条件转移指令都是短转移

================================================

条件转移指令都是短转移,-128到+127 之间

无符号运算转移指令(标志C和Z).

JA/JNBE 不小于或不等于时转移.(意思就是大于则就跳) JAE/JNB 大于或等于转移. JB/JNAE 小于转移. JBE/JNA 小于或等于转移.

有符号运算转移指令 (标志S,O和Z) JG/JNLE 大于转移. JGE/JNL 大于或等于转移. JL/JNGE 小于转移. JLE/JNG 小于或等于转移.

================================================

JE/JZ 等于转移. JNE/JNZ 不等于时转移. JC 有进位时转移. JNC 无进位时转移. JO 溢出转移. JNO 不溢出时转移. JNP/JPO 奇偶性为奇数时转移. JP/JPE 奇偶性为偶数时转移. JNS 符号位为 \时转移. JS 符号位为 \时转移.

================================================

循环控制指令(短转移)


《汇编语言》王爽版 学习笔记(精辟的第十一章总结完毕).doc 将本文的Word文档下载到电脑
搜索更多关于: 《汇编语言》王爽版 学习笔记(精辟的第十一章总结完毕) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219