汇编语言实验9,可以编译,但是无法运行
逻辑应该没问题?查不出代码哪里写错了还是怎么,求大佬帮忙assume cs:code
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
code segment
start:
;将三行'welcome to masm!'分别显示在12,13,14行中间(上下左右居中)
;data段地址 ds:bx ,颜色地址 ds:si
mov ax, data
mov ds, ax
mov bx, 0
mov si, 16
;显示器地址 es:di
mov ax, 0b800h
mov es, ax
mov di, 160*12+160/2-16
mov cx, 3
s: mov ax, cx
mov dx, ax ;存外循环次数到dx
mov cx, 16
s1: mov al, ds:
mov es:, al ;字符放到显示器地址
inc di
mov al, ds: ;颜色在 ds:si
mov es:, al ;字符后面跟颜色
inc di
;到下一个字符
inc bx
loop s1
add di, 128 ;到显示器下一行
inc si ;取下一个颜色
mov ax, dx
mov cx, ax ;取出外循环次数
loop s
mov ax, 4c00h
int 21h
code ends
end 2个问题 1、Start开始标号要写在有效代码的前面,不要写在注释前,不方便调试 2、28行之后 BX要置0 ,不然你第二、第三行取不到字符 我就知道你的结尾 end 后面少个start 你自己看着办吧! yjcoke 发表于 2021-1-5 18:46
我就知道你的结尾 end 后面少个start 你自己看着办吧!
对的,把程序写对后去掉start对比了一下,没有start进入debug看到的指令都不是程序里的指令 xjs972797887 发表于 2021-1-5 17:47
2个问题 1、Start开始标号要写在有效代码的前面,不要写在注释前,不方便调试 2、28行之后 BX ...
感谢,是忘了初始化bx
页:
[1]