实验4 [bx]和 loop 的使用 P121~P122

本贴最后更新于 2944 天前,其中的信息可能已经斗转星移

(1)编程:向内存0:200~0:23F 依次传送数据 0~63(3FH)

assume CS:code
code segment
	mov AX,20H
	MOV DS,AX
	MOV BX,0
	MOV CX,40h

s:MOV [BX],BX
INC bx
LOOP s

MOV AX,4c00h
INT 21h

code ends
end


(2)编程:向内存0:200~0:23F 依次传送数据 0~63(3FH),程序中只能使用 9 条指令,9 条指令包括“mov ax,4c00h”和“int 21h”

    同(1)

(3)下面的程序的功能是将“mov 4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。

       assume cs:code
       code segment
              mov ax,  cs  
              mov ds,ax
              mov ax,0020h
              mov es,ax
              mov bx,0
              mov cx,  cx  
            s:mov al,[bx]
              mov es:[bx],al
              inc bx
              loop s
              mov ax,4c00h
              int 21h
       code ends
       end

(1)复制的是什么?从哪里到哪里?

    答:复制的是机器码,从程序入口到CS:[CX]。

(2)复制的是什么?有多少个字节?你如何知道要复制的字节的数量?
    答:复制的是机器码?有CX个字节,因为DEBUG中CX寄存器默认的数据是程序的大小(总字节数)。
注意,一定要做完这个实验才能进行下面的课程。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    代码段,数据段~

    当年我也是写过汇编的~~~~

  • zempty
    作者

    @88250 奇怪,为什么我把同步的设置去掉了还是同步过来了?

  • 88250

    @zempty 你改过代码么 👿

  • zempty
    作者

    @88250 我改过一点点。什么情况啊?

  • 88250

    @zempty 理论上 [Solo] 是强制同步的,除非你改过同步开关那部分,同步过来也很好的嘛

  • zempty
    作者

    @88250 你告诉我什么情况,我并没有改原来的代码。只是加了个自动领取昨日奖励和自动博彩的功能。然后在 SoloServletListener 调用。你还留有这阴招

  • 88250

    @zempty 哦,我以为你改过同步开关那部分,那部分代码逻辑比较怪异,很容易入坑。大概是在 [Solo] 以前发布某个版本的时候,就强制同步了,只有加密的文章不会同步过来。有一个方式可以关闭,就是把 B3 Key 在社区的个人设置中改掉。

    你生气了....?

  • zempty
    作者

    @88250 我没有生气。我是想知道你是怎么做到的。我在社区是把 key 给留空了。api 也乱填。然后刚刚发的文章居然同步过来了,很是惊奇。你是怎么做到的?说说看么

  • zempty
    作者

    @88250 我打算把 latke 和 solo 给搞通呢。

  • 88250

    @zempty 我想起来了....

    有这样一段逻辑:

        String userKey = user.optString(UserExt.USER_B3_KEY);
        if (StringUtils.isBlank(userKey) || (Strings.isNumeric(userKey) && userKey.length() == clientB3Key.length())) {
            userKey = clientB3Key;
    
            user.put(UserExt.USER_B3_KEY, userKey);
            userMgmtService.updateUser(userKey, user);
        }
    

    也就是说,客户端过来的 key 如果是数字,并且长度和社区这边长度一致,则社区这边的 key 会被强制更新;另外还有一个逻辑是 [Solo] 会定时同步用户帐号到社区,并且校验那几个接口地址,如果发现不是 [Solo] 的格式,也会强制覆盖....

    虽然流氓了一点,但是为了实践 B3 整个计划,我只能这么做了。

  • zempty
    作者

    @88250 哈哈~好像让你感觉到我生气了?我一点都没有生气。我只是以为你在 solo 里有检测源码被改过的机制,想学习下这高深的技术。大公司的前身都是流氓起家的,我也很流氓的。

  • 88250

    @zempty 关于自动检测是否有改过代码这个机制我也想研究,因为想做 Solo 的自动更新(在发布 Solo 新版时,如果检测到用户没有改过代码,就自动更新)。

    萌萌哒~ 🍇

请输入回帖内容 ...

推荐标签 标签

  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 40 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 113 回帖 • 310 关注
  • OnlyOffice
    4 引用 • 19 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    25 引用 • 217 回帖 • 159 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 172 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 245 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    228 引用 • 1450 回帖 • 2 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    123 引用 • 168 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 691 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖 • 5 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 177 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖 • 1 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    710 引用 • 1173 回帖 • 164 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    60 引用 • 287 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 292 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 40 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 7 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    70 引用 • 532 回帖 • 713 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 349 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 25 关注
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 345 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    333 引用 • 323 回帖 • 65 关注