在汇编中打印字符的三角形

2023-12-02

我正在开发这个练习:

编写汇编程序,给定一个字符作为输入,输出一个大小为字符本身 5 x 5 的三角形。

我有一个问题,因为当我输入一个字符时,这些字符没有形成三角形,而是打印了其他字符。

我的输入:

f

我的输出:

期望的输出:

f
ff
fff
ffff
fffff

My code:

Title PROVA
;programma per la prova dell’ambiente Turbo Assembler 

DOSSEG
.MODEL SMALL
.STACK 100 
.DATA 
; se ci sono qui vanno dichiarate le vriabili

.CODE
  MOV AX, @data  ;(obbligatorie) inizializzano il DS      
  MOV DS, AX 
  
  MOV AX, 00
  MOV BX, 00
  MOV CX, 00
  MOV DX, 00

  mov ah,01h ;input va a mettere l'input in AL ;n
  int 21h
  MOV BL, AL ;n
  MOV CL, BL ;n
  
  MOV CH, 0H
  
  ciclo:
  CMP CH, 5H
  JE fine

  inc CH

  MOV DL, BL
  mov ah, 02h  ;stampa il contenuto di dl
  int 21h

  mov DL, 10D
  int 21h
  mov DL, 13D
  int 21h
  
  ;BL
  ADD BL, CL 
  
  JMP ciclo

  fine:
  MOV AL, 00H  ;(obbligatorie) ritornano il controllo al sistema operativo      
  MOV AH, 4CH 
  INT 21H 
 
END  

正如 vitsoft 指出的那样,字符发生了变化,因为您添加了CL to BL。 正如迈克尔所说,要制作三角形,您需要使用另一个循环。 以下是要更改的部分:

  MOV   AH, 01h  ; input va a mettere l'input in AL ;n
  INT   21H
  MOV   BL, AL   ; n
  
  MOV   CH, 0H
ciclo:
  CMP   CH, 5H
  JE    fine
  INC   CH
  
  MOV   DL, 10D
  INT   21H
  MOV   DL, 13D
  INT   21H
  
  MOV   CL, CH
  MOV   AH, 02H  ; stampa il contenuto di dl
  MOV   DL, BL
innerLoop:
  INT   21H
  DEC   CL
  JNE   innerLoop

  JMP ciclo

fine:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在汇编中打印字符的三角形 的相关文章

  • 分配内存空间的宏

    我需要让一个汇编程序员来计算帕斯卡三角形 https en wikipedia org wiki Pascal 27s triangle 这样帕斯卡三角形的每一行都与其他行分开存储在内存中 我想做一个 但我不知道如何使用宏在汇编中做到这一点
  • 英特尔® 事务同步扩展新指令 (TSX-NI) 与英特尔 TSX 有何不同?

    我在Intel的页面上找到了 https ark intel com products 97123 Intel Core i5 7500 Processor 6M Cache up to 3 80 GHz https ark intel c
  • 当非特权用户运行 C/asm 程序时,会对 Linux 造成什么危害?

    我一直在考虑一种场景 让用户 可以是任何人 可能有恶意 提交在 Linux PC 我们称之为基准节点 上运行的代码 目标是为单线程例程创建一种自动化基准测试环境 假设一个网站向代理发布了一些代码 该代理将此代码交给基准节点 而基准节点仅与代
  • elf .rel.text 部分中 R_386_32/R_386_PC32 的含义

    为了理解重定位的概念 我编写了一个简单的 chk c 程序 如下所示 1 include
  • 如何调试 iOS 应用程序在启动时崩溃,仅在程序集文件中设置断点

    我遇到了当前正在开发的应用程序的问题 问题是应用程序在启动时在后台运行一段时间后崩溃 并且仅在这种情况下 在应用程序被杀死时启动应用程序不会导致调试器或手机崩溃 无论是否进行调试 在后台启动应用程序大约 5 10 分钟都不会导致崩溃 在后台
  • 汇编编程语言:程序仅当输入为 ESC 时退出,并在退出前要求确认(y/n),否则循环

    我只是汇编语言编程的初学者 我们的第一个任务是让程序仅在输入为 ESC 时退出 退出之前请求确认 y n 否则循环 我知道 ESC 在 ASCII 代码中具有等效值 但我对插入位置或是否需要添加更多内容感到困惑 请帮我 这是程序 model
  • 编写 AMD64 SysV 程序集时使用哪些寄存器作为临时寄存器?

    我正在使用实现一个功能cpuid根据 AMD64 SysV ABI 进行组装 我需要在函数本身中使用 2 个临时寄存器 第一个用于累积返回值 第二个用作计数器 我的功能目前如下所示 zero argument function some c
  • 在 REP MOVSW 之前 PUSH CS / POP DS 的目的是什么?

    为什么在下面的代码中我们压入代码段 PUSH CS 然后将其弹出到数据段 POP DS 我将这些行明确指定为 line1 和 line2 请告诉我 MOVSW 在这里是如何工作的 IF HIGHMEMORY PUSH DS MOV BX D
  • 一条指令可以同时处于两种寻址模式吗?

    我在书中读到了以下内容从头开始编程 处理器有多种不同的访问数据的方式 称为 寻址模式 最简单的模式是立即模式 其中 要访问的数据嵌入在指令本身中 例如 如果我们想将寄存器初始化为 0 而不是给出 计算机要从中读取 0 的地址 我们将指定立即
  • 遍历内存编辑每个字节

    我正在编写汇编代码 提示用户输入一串小写字符 然后输出包含所有大写字符的相同字符串 我的想法是迭代从特定地址开始的字节 并从每个字节中减去 20H 将小写变为大写 直到到达具有特定值的字节 我对 Assembly 相当缺乏经验 所以我不确定
  • 什么时候汇编比C更快? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • Clang 使用 -nostdlib 生成崩溃代码

    我正在尝试为可执行文件设置自己的运行时环境 但无法使用 clang v3 4 1ubuntu1 目标 x86 64 pc linux gnu 来生成没有段错误的可执行文件 我已将问题简化为以下内容 如果我有一个文件 crt1 c 除了满足
  • 在 x86 程序集中将整数打印到控制台

    当我在 16 位汇编中添加两个值时 将结果打印到控制台的最佳方法是什么 目前我有这个代码 CODE START mov ax 1 put 1 into ax add ax 2 add 2 to ax current value mov ah
  • 为什么不能执行 mov [eax], [ebx] [重复]

    这个问题在这里已经有答案了 我可以做这个 mov eax ebx 和这个 mov eax ebx 甚至这个 mov eax ebx 但不是这个 错误C2415 mov eax ebx 只是wtf 为什么 它与 ptr1 ptr2 相同 为什
  • 在linux x86平台上学习ARM所需的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 x86 linux 机器 在阅读一些关于 ARM 的各种信息时 我很好奇 现在我想花一些时间学
  • 68HC11计算sin(x)的汇编代码

    68HC11 使用泰勒级数或查找表计算正弦值的汇编代码是什么 显示值只能是整数 查找表如何工作 在这种情况下 如何使用它来实现泰勒级数 http en wikipedia org wiki Taylor series 如果您正在寻找浮点解决
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • 从 exe 文件中获取汇编级代码?

    我当时正在做linux汇编编程 在过去的几天里我已经转而学习windows汇编编程 我在用ml作为我的汇编器和golink作为我的链接器 我有我的汇编代码并已获得我的exe从中 现在我需要取回它的十六进制 xff xab x55等等 在li
  • “mov (%ebx,%eax,4),%eax”如何工作? [复制]

    这个问题在这里已经有答案了 一直在从事装配作业 并且在很大程度上我对装配非常了解 或者至少对于这项任务来说足够好 但这个 mov 的声明让我很困惑 如果有人能解释这个 mov 语句如何操作寄存器值 我将非常感激 mov ebx eax 4
  • 阴影空间示例

    EDIT 我接受了下面的答案 并添加了我自己的代码的最终修订版 希望它向人们展示影子空间分配的实际示例 而不是更多的文字 编辑 2 我还设法在 YouTube 视频 所有内容 的注释中找到了一个调用约定 PDF 的链接 其中有一些关于 Li

随机推荐

  • 描述 Assembly 中的 pop [重复]

    这个问题在这里已经有答案了 我正在学习IA32 当我思考什么时popl DEST我认为指令正在做以下事情 movl esp DEST addl 4 esp 但当我想到popl esp 尽管这可能是一个毫无意义的指令 但我认为可能有更好的方法
  • 如何打印嵌入空值的字符串,以便用“(null)”替换“\0”

    我有一个使用 memcpy 组成的字符串 展开时 如下所示 char str AAAA x00 x00 x00 x11 x11 x11 x11 x00 x00 我想打印字符串中的每个字符 如果该字符为空 则打印出来 null 作为 0 的替
  • 带有全选复选框的可扩展列表视图:组项目单击和滚动错误

    我有一个 ExpandableListView 组名称旁边有一个复选框 展开时 子项目也带有复选框 假设我有 4 个组 有 50 个孩子 当展开一个组时 我单击全选复选框 一切正常 所有复选框都被选中 并在滚动时保持其状态 但是 如果我滚动
  • “ 远程服务器返回错误:(401) 未经授权”

    我正在尝试验证我的网址是否得到响应 换句话说 我正在尝试检查该网站的身份验证是否已成功 I used HTTP Request System Net WebRequest Create http example com HTTP Respo
  • 如何在 404 Tomcat 上重定向到外部网站

    我使用的是 spring 3 Tomcat 7 In web xml我已经定义了
  • TFS 构建定义未将 mvc 应用程序部署到 IIS

    我正在尝试使用 Visual Studio 的团队资源管理器和 TFS 创建构建定义以将 MVC 站点部署到 IIS 我遵循了名为 Team Foundation Server 2010 的持续部署 的 Pluralsight 教程 我从本
  • 使用 Java 从麦克风传输音频

    我正在开发一个项目 需要我将音频从客户端的麦克风流式传输到服务器 下面显示的代码是我写的 当我同时运行客户端和服务器代码时 音频不会实时传输 事实上 来自客户端的音频存储在缓冲区中 当我终止客户端代码的执行时 来自服务器缓冲区的音频将输出到
  • Java 不稳定的并发性

    好的 我刚刚读了这个问题你在 Java 中使用过 volatile 关键字吗 并且我使用易失性变量来停止循环 我也看过这个参考资料 http www javamex com tutorials synchronization volatil
  • 如何使用java流比较两个ArrayList并通过过滤器获取list1

    我有两个类型为 List 的列表 list1 和 list2 Term long sId int rowNum long psid String name List
  • 如何将 JSON 字符串转换为数组(PHP)?

    使用下面的代码来解码json categories json decode data categories categories gt data 我从哪里得到这个 categories id 1 name Utilities apps 89
  • 将两个单独的 wp 查询合并为一个查询以进行搜索

    目前 我的类别页面上有一个搜索栏 可以搜索产品标题 自定义帖子类型 或品牌分类 我可以让这两个独立工作 将任一参数传递给 WP Query 但是如果我尝试将它们数组合并在一起 则两者都不起作用 我所拥有的是 search sanitize
  • Base64 对文件进行编码并压缩

    我的目标是对文件进行编码并将其压缩到java中的文件夹中 我必须使用 Apache 的 Commons codec 库 我能够对其进行编码和压缩 并且工作正常 但是当我将其解码回原始形式时 看起来该文件尚未完全编码 看起来缺少一些零件 谁能
  • 中断命令 (ctrl+C) 不再在 macOS 上的 VS Code 1.78 终端中工作

    我打开的每个终端的顶部都是文本 bash 此 shell 中没有作业控制 我不记得在 VS Code 中更改过任何内容 但现在我无法再使用 control c 来停止终端中的内容 例如 npm run dev 和 node app js 在
  • 显示我的 nuget 的源代码

    我和我的团队构建了我们自己的框架 我们在许多项目中使用 我们曾经将框架的项目包含在所有其他项目中 但后来我们决定将框架放入 nuget 服务器上的 nuget 包主机中 以便我们可以在开发过程中更轻松地进行版本控制和传播框架 一切都工作正常
  • 将代码文件移动到项目中的另一个文件下

    我想将一个代码文件移到另一个相关文件组下 如下所示 如你所见 SingleObjectViewModel Commands cs隐藏在SingleObjectViewModel cs团体 在某些情况下它可能很有用 我已经创建了SingleD
  • 将 Spring Boot 应用程序部署到 AWS Beanstalk

    将 Spring Boot 项目 最好只是 jar 部署到 AWS Beanstalk 环境的最佳方式是什么 或者我应该将其转换为 WAR 并以这种方式部署 解决方案 基本上我所做的是这样的 创建了新类来告诉 Spring Boot 我的应
  • ASP.NET 中 GridView 中的内部网格线

    我有一个GridView在 ASP NET 2 0 中 我希望仅显示内部网格线 到目前为止 这是我的标记和 CSS
  • 离子启动画面未加载

    我已经检查并仔细检查了 Stack Overflow 以获得有关此问题的答案 但我真的找不到答案 我正在使用离子框架构建一个应用程序 虽然我以前从未遇到过这个问题 但由于某种原因 启动屏幕无法工作 我只是得到一个完全白色的屏幕 然后在加载初
  • iPhone中的应用程序间通信

    我只是想知道是否有任何方法可以从 iPhone 中的应用程序外部访问文档 例如 我希望能够将 Word 文档从邮件发送到我的应用程序 我怎样才能实现这个目标 提前致谢 这是一个博客 描述了 iOS 应用程序中应用程序间通信的工作原理 iOS
  • 在汇编中打印字符的三角形

    我正在开发这个练习 编写汇编程序 给定一个字符作为输入 输出一个大小为字符本身 5 x 5 的三角形 我有一个问题 因为当我输入一个字符时 这些字符没有形成三角形 而是打印了其他字符 我的输入 f 我的输出 期望的输出 f ff fff f