初学汇编分享自己的 实验9 给大家参考!
第一段代码assume cs:code,ds:data
data segment
db 'Welcome to masm !'
db 02h,24h,71h
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,0b872h
mov es,ax ; es初始化为显示缓冲区段地址
mov di,0
mov bx,17 ;指向数据段中的颜色
mov cx,17 ;第一次绿色字符串的循环数
s1:mov al,ds: ;把第一个字符W存入AL中
mov ah, ;把颜色存入AH中
mov es:,ax ;放入显示缓冲区地址
inc si
add di,2
loop s1
xor si,si ;异或字指令 SI清0
add di,126 ;下一行绿底红色的地址
inc bx
mov cx,17 ;第二次绿底红色字符串的循环数
s2:mov al,ds:
mov ah,
mov es:,ax
inc si
add di,2
loop s2
xor si,si
add di,126 ;下一行白底蓝色的地址
inc bx
mov cx,17 ;第二次白底蓝色字符串的循环数
s:mov al,ds:
mov ah,
mov es:,ax
inc si
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start
第二段优化过的代码
assume cs:code,ds:data
data segment
db 'Welcome to masm !'
db 02h,24h,71h
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,0b872h
mov es,ax
mov di,0
mov bx,17
mov cx,3
s0:push cx
mov cx,17
s1:mov al,ds:
mov ah,
mov es:,ax
inc si
add di,2
loop s1
pop cx
xor si,si
add di,126
inc bx
loop s0
mov ax,4c00h
int 21h
code ends
end start 请问: 你这个代码中用到栈了,可是你并没有定义栈段啊,也没有设置SS和SP.为什么也可以正常运行呢
页:
[1]