鱼C论坛

 找回密码
 立即注册
查看: 11620|回复: 5

[汇编作业] 汇编语言实验9,可以编译,但是无法运行

[复制链接]
发表于 2021-1-5 15:55:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
逻辑应该没问题?查不出代码哪里写错了还是怎么,求大佬帮忙

  1. assume cs:code

  2. data segment
  3.         db 'welcome to masm!'
  4.         db 02h,24h,71h
  5. data ends

  6. code segment
  7. start:
  8.         ;将三行'welcome to masm!'分别显示在12,13,14行中间(上下左右居中)

  9.         ;data段地址 ds:bx ,颜色地址 ds:si
  10.         mov ax, data
  11.         mov ds, ax
  12.         mov bx, 0
  13.         mov si, 16

  14.         ;显示器地址 es:di
  15.         mov ax, 0b800h
  16.         mov es, ax
  17.         mov di, 160*12+160/2-16

  18.        
  19.         mov cx, 3
  20.         s:        mov ax, cx
  21.                 mov dx, ax ;存外循环次数到dx

  22.                 mov cx, 16
  23.                 s1:        mov al, ds:[bx]
  24.                         mov es:[di], al   ;字符放到显示器地址
  25.                         inc di
  26.                         mov al, ds:[si]        ;颜色在 ds:si
  27.                         mov es:[di], al   ;字符后面跟颜色
  28.                         inc di                       

  29.                         ;到下一个字符
  30.                         inc bx
  31.                 loop s1

  32.                 add di, 128 ;到显示器下一行
  33.                 inc si         ;取下一个颜色
  34.                 mov ax, dx
  35.                 mov cx, ax ;取出外循环次数
  36.         loop s

  37.         mov ax, 4c00h
  38.         int 21h
  39.        
  40. code ends
  41. end
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-5 17:47:07 | 显示全部楼层
2个问题      1、Start开始标号要写在有效代码的前面,不要写在注释前,不方便调试         2、28行之后 BX要置0 ,不然你第二、第三行取不到字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-5 18:46:11 | 显示全部楼层
我就知道你的结尾 end 后面少个start   你自己看着办吧!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-5 22:22:58 | 显示全部楼层
本帖为密码帖 ,请输入密码 
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-6 17:09:05 | 显示全部楼层
yjcoke 发表于 2021-1-5 18:46
我就知道你的结尾 end 后面少个start   你自己看着办吧!

对的,把程序写对后去掉start对比了一下,没有start进入debug看到的指令都不是程序里的指令
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-6 17:09:42 | 显示全部楼层
xjs972797887 发表于 2021-1-5 17:47
2个问题      1、Start开始标号要写在有效代码的前面,不要写在注释前,不方便调试         2、28行之后 BX ...

感谢,是忘了初始化bx
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-8 15:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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