吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1994|回复: 9
收起左侧

[学习记录] 《汇编语言》王爽(第四版) 实验9 答案(非标准,运行结果正确)

[复制链接]
x0710 发表于 2022-8-9 21:29
本帖最后由 x0710 于 2022-8-11 13:34 编辑

这段代码虽然简短,但是对于一个汇编初学者还是有太大难度的,7点想思路,14点开始,20:50结束。也有些经验教训。如这个程序的特征是:不能用debug,我就傻傻的debug,百思不得其解。哪怕是正确答案我结果都是错误的。走过坑后,这个要在DOS直接运行。
一个复杂的事要从简单开始,积少成多。要求是在中间显示三行welcome to masm!,简单分析下就是重复三次打印welcome,再分别设置它们的属性。如果遇到寄存器不够用的情况就使用栈,在字节与字的下标要求同步时,字节和下标可以用add bx,bx再配合栈来实现与字下标同步,还原字节下标(因为字的大小是字节的2倍原因)。<del>同时也考查了如何实现三行文字如何同步,一行有80字符,1个字符本身1字节,属性1字节,所以1个字符占2字节,合1字大小。那么一行是160字节,分左右各80字节,welcome to masm!共16字节,折半为8字节,则一行就从第80-8=72</del>????我不知我的怎么算中间为64字节了,怎么是72?(哪位大佬来指下错误)
第一行定义段地址B864(提前测量的),上面计算出偏移地址64,由我举出的数也可以发现段地址每次递增AH(不讲是因为我忘了怎么算的了,要和十进制一起算。加一句,在写教程的时候发现怎么讲了,比我当时想的简单多了)刚刚有说一行的大小是160字节,那么160=A0H,再将A0H右移4位(这里是将内存地址转为段地址,不懂请复习CUP段地址转为物理地址),(A0H>>4)=AH,所以每个地址要相隔AH大小(因为一行A0H大小,要实现两行对齐空一行就行了)。
[Asm] 纯文本查看 复制代码
assume cs:code
stack segment
        dw 5 dup (0)
data segment
        db 'welcome to masm!'        ;first line: B864:40
        db 00000010b,00100100b,01110001b
        dw 0B864H,0B86eH,0b878H
data ends
code segment
start:
        mov ax,data
        mov ds,ax
        mov ax,stack
        mov ss,ax
        mov sp,12
        
        mov bx,0
        mov cx,3
        
s:push cx
        
        push bx
        add bx,bx
        mov ax,19[bx]
        mov es,ax
        pop bx
        
        mov ah,16[bx]
        
        mov cx,16
        push bx
        mov bx,0
        s0:
                mov al,0[bx]
                push bx
                add bx,bx
                mov es:64[bx],ax
                pop bx
                inc bx
                loop s0
        pop bx
        inc bx
        
        pop cx
        loop s
        
        mov ax,4c00h
        int 21h
code ends
end start
QQ截图20220809204739.png

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
nqzva + 1 用心讨论,共获提升!
AG9000 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

kingsxue89 发表于 2022-8-9 21:49
哈哈,最近也在看汇编,有点晦涩
Sanlee 发表于 2022-8-9 22:19
bucai1 发表于 2022-8-9 22:22
稻海香 发表于 2022-8-9 23:33
这本书已经出到了第四版了,我买过第二版的,才看一丢丢
tzlqjyx 发表于 2022-8-10 06:58
总是不能看得入迷,感觉没动力,哈哈
头像被屏蔽
tlf 发表于 2022-8-10 08:39
提示: 作者被禁止或删除 内容自动屏蔽
lxfw2000 发表于 2022-8-10 08:59
时间太久了,汇编看不懂了,顶你一下吧!
yylwhy 发表于 2022-8-10 12:19
这本书上大学的时候就买了,,已经毕业好久了 也没看完
sergin 发表于 2022-8-10 12:36
自学了一段时间,工作忙又放下了,再回头看,感觉忘的差不多了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-14 09:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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