|
主题 : : 试验9,请各位指教 [待解决] |
回复[ 4次 ]
点击[ 440次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-07-13 14:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:0
注册日期:2008-04-02 13:08 |
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b872h
mov es,ax
mov si,0
mov di,0
mov cx,10h
s:
mov al,ds:[si]
mov ah,02h
mov es:[di],ax
mov ah,24h
mov es:[di+0a0h],ax
mov ah,71h
mov es:[di+140h],ax
inc si
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-07-13 17:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51 |
|
|
|
|
|
[第2楼]
[ 回复时间:2008-07-13 18:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:0
注册日期:2008-04-02 13:08 |
花了两个小时,写了两种。一种 单重循环,一种多重循环
多重循环太麻烦了,考虑得东西多,代码长,执行时间长,还不如用单循环
不过多重循环也有好处,能够更加深刻得理解一些循环问题 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-07-14 08:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
写出了单循环的再试试多循环的也不错,代码。逻辑也都会精简不少,也可以把颜色定义成数据,这样我们想多添加一行其他颜色的显示也更清晰~ | | |
|
|
|
|
[第4楼]
[ 回复时间:2008-08-14 10:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:5
信誉值:3
注册日期:2008-07-14 19:30 |
assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
db 'welcome to masm!'
db 02h,24h,71h,0cah
datasg ends
stacksg segment
dw 8 dup (0)
stacksg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,0B86Eh
mov es,ax
mov si,0
mov cx,4
s1: push cx
mov di,0
mov bx,0
mov cx,16
s2: mov dl,ds:[di]
mov dh,ds:[si+16]
mov es:[bx],dx
inc di
add bx,2
loop s2
add si,1
add ax,0Ah
mov es,ax
pop cx
loop s1
mov ax,4c00h
int 21h
codesg ends
end start
==========================================
这是我做的多重循环,是很复杂,调试了N次。。
就是变量太多了
而且给寄存器ax附值,也要有先后的顺序,。
但是很好用,
例如添加循环的次数,,变换代码的颜色。。
也很好。。
花了2个多小时。。。。 | | |
|