. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验十(一)show_str.asm  [待解决] 回复[ 9次 ]   点击[ 483次 ]  
inrg
[帖 主]   [ 发表时间:2010-01-22 18:54 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2007-12-08 14:22
assume cs:code

data segment
        db 'Welcome to masm!',0
data ends

code segment
start:
        mov dh, 0
        mov dl, 0
        mov cl, 2
        mov ax, data
        mov ds, ax
        mov si, 0
        call show_str
        mov ah, 1
        int 21h
        mov ax, 4c00h
        int 21h
        
show_str:
        mov ax, 0B800h
        mov es, ax
        mov al, 160
        mul dh
        sub dh, dh
        add ax, dx
        add ax, dx
        mov bx, ax
        mov al, cl
        sub cx, cx
s:
        mov cl, ds:[si]
        jcxz s0
        mov es:[bx], cl
        mov es:[bx + 1], al
        inc si
        add bx, 2
        jmp s
s0:
        ret
code ends
end start
abob
[第1楼]   [ 回复时间:2010-01-26 11:27 ]   [引用]   [回复]   [ top ] 
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
不错。
xhz520
[第2楼]   [ 回复时间:2010-01-29 15:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-01-21 15:36
assume cs:code

data segment
        db 'welcom to masm!',0
data ends

code segment
start:        mov dh,8
        mov dl,3
        mov cl,2
        mov ax,data
        mov ds,ax
        mov si,0
        call show_str

        mov ax,4c00h
        int 21h

show_str:        mov ax,0b800h
                mov es,ax
                mov al,0a0h
                mul dh
                mov di,ax
                sub dl,1
                add dl,dl
                mov bx,0
                mov bl,dl

s:                push cx
                mov cx,0
                mov ah,[si]
                sub cl,ah
                jcxz ok
                mov es:[di][bx],ah
                pop cx
                mov es:[di][bx].1,cl
                inc si
                add bx,2
                jmp s

ok:                pop cx
                ret

code ends
end start
hay1323
[第3楼]   [ 回复时间:2010-02-16 22:09 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-20 22:10
请问楼上,程序中为何要加入
mov ah, 1 
int 21h 
这两行才可以?(如果没有这两行,显示内容的行数不对,出现在第4行中)?
suixin
[第4楼]   [ 回复时间:2010-02-18 13:03 ]   [引用]   [回复]   [ top ] 
荣誉值:7
信誉值:10
注册日期:2009-11-19 11:28
mov ah, 1  
int 21h
应该是调用中断21h的第1个子程序吧
hygf99
[第5楼]   [ 回复时间:2010-03-03 22:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41
MOV AH,1是等待输入,仔细观察这个程序执行后光标在闪的
carlmax
[第6楼]   [ 回复时间:2010-04-03 18:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-10 20:44
; multi-segment executable file template.

; flat assembler syntax

assume cs:codesg,ds:datasg 
datasg segment 
       db 'welcome to masm!',0 
datasg ends 

codesg segment
  start:mov dh,8
        mov dl,3
        mov cl,3
        mov ax,datasg
        mov ds,ax
        mov si,0
        call show_str
          
        mov ax,4c00h
        int 21h
        
        
show_str:  
        mov ax,0b800h
        mov es,ax
        sub dh,1 
        sub dl,1 
        add dl,dl 
        mov bx,0
        mov bl,dl
        mov al,160
        mul dh
        mov di,ax 
        
  input:
        mov cl,ds:[si]
        mov ch,0
        
        jcxz ok
        mov al,ds:[si]
        mov es:[bx+di],cl
        mov es:[bx+di+1],al
        inc si
        add bx,2
        jmp short input   
     ok:ret 
             
codesg ends

end start
carlmax
[第7楼]   [ 回复时间:2010-04-03 18:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-10 20:44
结果不是很正常,颜色不是固定的,每个字的颜色都不一样
carlmax
[第8楼]   [ 回复时间:2010-04-03 18:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-10 20:44
; multi-segment executable file template.

; flat assembler syntax

assume cs:codesg,ds:datasg 
datasg segment 
       db 'welcome to masm!',0 
datasg ends 

codesg segment
  start:mov dh,8
        mov dl,3
        mov cl,3
        mov ax,datasg
        mov ds,ax
        mov si,0
        call show_str
          
        mov ax,4c00h
        int 21h
        
        
show_str:  
        mov ax,0b800h
        mov es,ax
        sub dh,1 
        sub dl,1 
        add dl,dl 
        mov bx,0
        mov bl,dl
        mov al,160
        mul dh
        mov di,ax 
        mov ah,cl
  input:
        mov cl,ds:[si]
        mov ch,0
        
        jcxz ok
        mov al,ds:[si]
        mov es:[bx+di],ax
        
        inc si
        add bx,2
        jmp short input   
     ok:ret 
             
codesg ends

end start
carlmax
[第9楼]   [ 回复时间:2010-04-03 18:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-10 20:44
回复:[第8楼]
------------------
改后的
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved