|
主题 : : 实验十(一)show_str.asm [待解决] |
回复[ 9次 ]
点击[ 483次 ] | |
|
|
|
|
[帖 主]
[ 发表时间: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 | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-01-26 11:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07 |
|
|
|
|
|
[第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 | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-02-16 22:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-11-20 22:10 |
请问楼上,程序中为何要加入
mov ah, 1
int 21h
这两行才可以?(如果没有这两行,显示内容的行数不对,出现在第4行中)? | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-02-18 13:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:7
信誉值:10
注册日期:2009-11-19 11:28 |
mov ah, 1
int 21h
应该是调用中断21h的第1个子程序吧 | | |
|
|
|
|
[第5楼]
[ 回复时间:2010-03-03 22:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41 |
MOV AH,1是等待输入,仔细观察这个程序执行后光标在闪的 | | |
|
|
|
|
[第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 | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-04-03 18:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-10 20:44 |
结果不是很正常,颜色不是固定的,每个字的颜色都不一样 | | |
|
|
|
|
[第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 | | |
|
|
|
|
[第9楼]
[ 回复时间:2010-04-03 18:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-10 20:44 |
回复:[第8楼]
------------------
改后的 | | |
|