. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9 要命5小时  [待解决] 回复[ 2次 ]   点击[ 282次 ]  
heart_win
[帖 主]   [ 发表时间:2013-03-25 22:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-02-11 16:28
assume cs:code,ds:data,es:table,ss:stack

data segment

        db 'Welcome to MASM!'

data ends

table segment

        dw 4000 dup (0)

table ends

stack segment

        dw 10 dup (0)

stack ends

code segment

start:
        mov ax,data
        mov ds,ax
        mov bx,0

        mov ax,stack
        mov ss,ax
        mov sp,12

        mov ax,0B800h
        mov es,ax
        mov bp,0
        
        mov bp,0                ;bp 竖
        mov ax,0
        mov cx,0
        mov ax,25
        mov byte ptr ss:[0],2
        div byte ptr ss:[0]
        mov cl,al
        sub cx,1

s0:
        add bp,0A0h
        loop s0

        mov ax,0
        mov di,0                ;di 横
        mov ax,0A0h
        div byte ptr ss:[0]
        sub ah,ah
        sub ax,010h
        mov di,ax
        
        mov ax,0
        mov cx,16
s1:
        mov al,ds:[bx]
        mov es:[bp+di],al
        mov es:[bp+0a0h+di],al
        mov es:[bp+0140h][di],al
        mov ah,02h
        mov es:[bp+di+1],ah
        mov ah,024h
        mov es:[bp+0a0h+di+1],ah
        mov ah,071h
        mov es:[bp+0140h+di+1],ah
        inc bx
        add di,2
        loop s1
                
        mov ax,4c00h
        int 21h

code ends

end start
heart_win
[第1楼]   [ 回复时间:2013-03-25 22:28 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-02-11 16:28
代码几十分钟就搞好了,调试却用了几个小时...啦啦啦!
stop1204
[第2楼]   [ 回复时间:2013-05-16 02:36 ]   [引用]   [回复]   [ top ] 
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06
长过头了吧-.-   我就那个代码的位置想了几十分钟,, 输出的颜色位置老不一样,,不在正中间


assume cs:code 
data segment 
        db 'w e l c o m e   t o   m a s m ! ' 
data ends 
code segment 
start:        mov ax,data 
                mov ds,ax 
                mov ax,0b800H 
                mov es,ax 
                mov cx,16 
                mov bx,0 
s:        mov al,[bx] 
                mov es:[bx+64].8c0H,al 
                mov es:[bx+64].960H,al 
                mov es:[bx+64].0A00H,al 
                mov ah,00000010B                ;或2h     写成2进制比较直观 
                mov es:[bx+65].8c0H,ah    ;闪烁\背景R\G\B\高亮\前景R\G\B   1为开启 2为关闭 
                mov ah,01000010b           ; 11111111B  则为闪烁高亮白字白背景 
                mov es:[bx+65].960H,ah 
                mov ah,01110001b 
                mov es:[bx+65].0A00H,ah 
                inc bx 
                inc bx 
                loop s 
mov ax,4c00h 
int 21h 
code ends 
end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved