鱼C论坛

 找回密码
 立即注册
查看: 1948|回复: 3

汇编实验9 求大虾指教

[复制链接]
发表于 2012-6-30 11:05:34 | 显示全部楼层 |阅读模式
1鱼币
assume cs:code ,ds:data,ss:stack
data segment
;年份(0-53H);(存放在段ds段)
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment;(存放在es段)(02H=1,24H=2,71H=3)
dw 8 dup (0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b7c0H
mov es,ax;初始地址
mov bx,0;定义颜色
mov si,0;定义初始地址索?
mov di,0;目标地址索引
mov cx,3
s:
push cx
push bx
push ax
mov cx,16
s1:
pop bx
mov al,ds:[si]
mov es:[di],al
mov ah,ds:[bx+10H]
mov es:[di+1],ah
inc si
add di,2
loop s1


mov ax,4c00h
    int 21h
code ends
end start
这段代码 还没完成
但是在测试的时候 我发现
mov ah,ds:[bx+10H]
mov es:[di+1],ah
这段代码为什么 没有循环16次
好像就循环了一次 而且还不是在w的后面
却跑到e 的后面了。而且 我那个位置不是显存的位置吗 为什么我的dos 下没显示welcome to masn呢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-6-30 13:18:40 | 显示全部楼层
大虾在哪  。。求指教 不明白 我的思路是  把颜色02赋值给ah把字符赋值给地位al 执行16次循环 我个人觉得没问题啊  为什么只循环了16次al没有执行16次ah呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-30 19:02:23 | 显示全部楼层
自己终于找到原因了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-1 19:14:50 | 显示全部楼层
assume cs: codesg;, ds:datasg
datasg segment
                db        'welcome to masm!'
datasg ends
codesg segment
start:        mov ax, datasg
                mov ds, ax
                mov ax, 0b800h
                mov es, ax
               
                mov bx, 0
                mov si, bx
                mov di, bx
                mov bp, 1760                                ;0b800:1760 第12行的偏移量
                mov cx, 16
        sa:        mov al, ds:[bx]                                ;复制3行welcome to masm!到屏幕中央
                mov es:[bp].66[di], al                        ;66为welcome开始的33列的地址(33*2)
                mov es:[bp+160].66[di], al
                mov es:[bp+320].66[di], al
                inc bx
                add di, 2
                loop sa
               
                mov di, 0
                mov cx, 16
        sc:        mov byte ptr es:[bp].66[di + 1], 2h                        ;填充颜色
                mov byte ptr es:[bp + 160].66[di + 1], 24h
                mov byte ptr es:[bp + 320].66[di + 1], 71h
                add di, 2
                loop sc
               
                mov ax, 4c00h
                int 21h
codesg ends
end        start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-8 06:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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