小程努力学敲代码 2021-06-07 00:18 采纳率: 50%
浏览 20

汇编语言程序设计循环指令问题

用循环指令实现在屏幕中间输出绿底高亮白色的字符串:Hello,I am

  • 写回答

2条回答 默认 最新

  • lshen01 2023-03-17 12:34
    关注

    参考GPT和自己的思路:

    非常感谢你向我咨询关于汇编语言程序设计循环指令的问题。

    以下是实现在屏幕中间输出绿底高亮白色字符串的汇编代码示例:

    .model small
    .stack
    .data
    msg db 'Hello,I am', 0Ah, '$'
    color db 0Ah, 0Fh
    .code
    start:
    mov ax, @data
    mov ds, ax
    
    mov ah, 0
    mov al, 3
    int 10h ; 获取屏幕分辨率
    
    mov cx, 30
    shr cx, 1 ; 将 cx 的值除以 2
    
    mov bh, 0 ; 背景色为黑色
    mov bl, color ; 文字颜色为白色
    mov bp, offset msg ; 将字符串的偏移地址存入 bp 中
    mov ah, 09h ; DOS 中的 21h 功能号,将字符串输出到屏幕
    int 21h
    
    mov ah, 02h ; DOS 中的 21h 功能号,设置光标位置
    mov bh, 0
    mov dl, 80 ; 将光标移动到第 80 列
    mov dh, cx ; 将光标移动到中间行
    int 10h
    
    mov ah, 09h ; DOS 中的 21h 功能号,将字符串输出到屏幕
    int 21h
    
    mov ah, 4Ch ; DOS 中的 21h 功能号,退出程序
    int 21h
    end start
    

    以上代码通过设置字符串的颜色和屏幕光标位置等实现在屏幕中间输出绿底高亮白色的字符串 "Hello,I am"。代码中使用了循环指令,但是由于要输出的字符串比较固定,所以循环次数直接写为了 30 / 2 = 15(80 表示屏幕一行有 80 列)。

    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?