吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1741|回复: 6
收起左侧

[学习记录] 王爽实验9.自己解读,代码注释很多!

[复制链接]
hwp_better 发表于 2020-8-14 14:16
本帖最后由 hwp_better 于 2020-8-20 15:42 编辑

实验9,PDF中的内容:
3.jpg
代码【注释较全面】:
[Asm] 纯文本查看 复制代码
assume cs:code,ds:data,ss:stack
data segment
        db 'welcome to masm!';定义显示字符串,16个字节
        db 02h,24h,71h;定义颜色
data ends

stack segment
        dw 8 dup(0);保留栈段空间,用来保存ax,bx,cx
stack ends

code segment
start:
        mov ax,data
        mov ds,ax
        mov ax,stack
        mov ss,ax
        mov sp,10h
        
        xor bx,bx;保证bx为0
        mov ax,0b872h;复杂的计算产出的东西。屏幕25*80
        ;80个字符,一个字符是两个字节,故而屏幕一行就是160个字节!
        ;字符串为16个字节,所以就是(11*160+32*2=1824d,就是720h)
        
        mov cx,3
        s3: push cx;记录循环次数!
                push ax;记录起始位置!
                push bx;用于记录颜色!
                
                mov es,ax
                
                mov si,0
                mov di,0
                mov cx,10h;循环16次,依次存放全部字符进入显存
        s1:mov al,ds:[si]
                mov es:[di],al
                inc si
                add di,2;因为,显存格式为[字符,颜色].所以要为存储颜色区域保留一些存储空间!
                loop s1;循环存储所有的“welcome to masm!”存储进入显存存储区域。
                
                mov di,1;修改啦,要进行写入颜色所对应的位置啦!
                pop bx
                mov al,ds:10h[bx];因为颜色存储在第二行。
                inc bx
                
                mov cx,10h
        s2:mov es:[di],al;写入颜色!
           add di,2;进行位移。写入一行的颜色。
           loop s2
           
           pop ax
           add ax,0ah;ax增加160,进行换行,便于操作下一行的东西。
           
           pop cx;拿出最初入栈的用于循环的cx进行记录次数!
           loop s3
           
           mov ax,4c00h
           int 21h
code ends
end start

代码截图:
2.jpg
运行:
1.jpg

OK

免费评分

参与人数 3吾爱币 +6 热心值 +2 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
麦田孤望者 + 1 用心讨论,共获提升!
红颜世家、 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

52jcool 发表于 2020-8-14 14:23
汇编大神,膜拜一下,学习学习
hxd97244 发表于 2020-8-14 14:25
 楼主| hwp_better 发表于 2020-8-14 14:25
52jcool 发表于 2020-8-14 14:23
汇编大神,膜拜一下,学习学习

哈哈,过奖啦。一个小实验而已~
 楼主| hwp_better 发表于 2020-8-14 14:27
hxd97244 发表于 2020-8-14 14:25
哎,一见汇编就头大

咬着牙坚持搞完~
tzhv_9w6 发表于 2020-8-15 10:38
了解每个寄存器的功能就能更容易理解。
 楼主| hwp_better 发表于 2020-8-15 15:41
tzhv_9w6 发表于 2020-8-15 10:38
了解每个寄存器的功能就能更容易理解。

学习汇编的正解!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 13:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表