|
主题 : : 一个菜鸟关于实验九的参考答案的一些改写,惭愧,自己写不出 [待解决] |
回复[ 4次 ]
点击[ 587次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-01-13 21:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2009-12-24 11:13 |
其实能有勇气学到这一章我自己都觉得不可思议了,毕竟自己也没有什么太多基础,不过就是上网上了五年而已。也快四十岁的人了。希望自己能一直坚持下去吧。
这一章的实验程序我没写出来,看了一些别人写的,觉得很佩服。学汇编我想现在对于我来说最重要是学懂吧。
参考答案中的写法我看了好久我才看明白大概是个什么意思,其实论坛的很多写法简单很多了,不过它的思路好象有点意思。只是我觉得有些好象没必要那么写,就自己按照它的思路稍稍改了一下,也算是通过了吧。
下面是我改写的。。希望高手别笑,错误的地方请指出。也给一些和我一样的菜鸟提供一些想法吧。
assume cs:code,ds:data,ss:stack
data segment
db'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
start:
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov ax,0b872h
mov es,ax
mov bx,0
mov di,0
mov cx,3
s3: push cx
push di
mov si,0
mov di,0
mov cx,10h
s1: mov al,ds:[di]
mov es:[bx+si],al
inc di
add si,2
loop s1
mov si,1
pop di
mov al,ds:[di+10h]
mov cx,10h
s2: mov es:[bx+si],al
add si,2
loop s2
inc di
add bx,0a0h
pop cx
loop s3
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-01-13 21:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2009-12-24 11:13 |
|
|
|
|
|
[第2楼]
[ 回复时间:2010-01-14 10:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14 |
|
|
|
|
|
[第3楼]
[ 回复时间:2010-01-14 21:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2009-12-24 11:13 |
又搞了一天,还是和那个思路,引发出来的一个新写法,,先保存在这儿,也总算自己写出了一个,不管好不好,这一章就算勉强可以过了。
assume cs:code,ds:data,ss:stack
data segment
db'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov ax,0b872h
mov es,ax
mov bx,0
mov si,0
mov cx,16
s1: mov al,[bx]
mov es:[si],al
mov es:[si+0a0h],al
mov es:[si+140h],al
inc bx
add si,2
loop s1
mov bx,0
mov bp,0
mov cx,3
s3: mov al,[bx+10h]
push cx
mov si,0
mov cx,16
s2: mov es:[si+1+bp],al
add si,2
loop s2
inc bx
add bp,0a0h
mov si,0
pop cx
loop s3
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第4楼]
[ 回复时间:2012-08-20 21:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-08-14 17:57 |
|
|