|
主题 : : 147(电子书第156页)问题7.9,我的做法,和大家有所不同 [待解决] |
回复[ 8次 ]
点击[ 576次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-11-28 14:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28 |
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
mov bx,4(有的写0)
mov cx,4
s0: push cx
mov si,0(有的写3)
mov cx,4
s: mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
pop cx
add bx,16
loop s0
mov ax,4c00h
int 21h
code ends
end start
其实就将这题的上一题中的循环次数和起始偏移地址改一下就完了,
我不知道这样做的题目对吗? | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-11-28 14:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42 |
我觉得对于不对,计算机能给你最正确的回答。
你运行的结果对就没问题。思路和想法大家都可能有差别。
新思路新想法支持,不过,这些想法的初步检测也应该是提出该想法的一个部分。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-11-29 10:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28 |
|
|
|
|
|
[第3楼]
[ 回复时间:2007-12-01 02:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:7
信誉值:10
注册日期:2007-11-26 03:32 |
mov bx,4这地方你多设了一个字节
00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,A ,B ,C ,D ,E ,F
第4个字节应该是3 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-12-12 20:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:9
注册日期:2007-10-19 10:16 |
同意3楼。还有,楼主以列序为主序,看着怪难受的,还是以行序为主序看着顺眼。 | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-01-12 18:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:0
注册日期:2008-01-01 14:49 |
其实,最后这个主要是在检测[bx+si+idata]或者[bx+di+idata]的使用!
其实思路一样!形式不同. | | |
|
|
|
|
[第6楼]
[ 回复时间:2008-04-09 16:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:10
注册日期:2008-03-21 21:38 |
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
mov bx,4(有的写0)
mov cx,4
s0: push cx
mov si,0(有的写3)
mov cx,4
s: mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s
pop cx
add bx,16
loop s0
mov ax,4c00h
int 21h
code ends
end start
其实就将这题的上一题中的循环次数和起始偏移地址改一下就完了,
我不知道这样做的题目对吗?
------------------
回复:
一道题的解题思路有很多,有简单的有复杂的就看你能想到思路了,但是前提是结果必须是符合题目的要求的
而你这题给的答案是错误的
虽然我没DEBUG,但从程序的流程上来看,你答案得出的结果是将每行单词从第2个字母开始后4个字母改为大写
有些逻辑错误仔细跟着流程走就能很快判断出来的
我冒昧的估计下,你产生这个错误的原因应该是对于偏移地址的开始判断没弄清楚,你可能认为[4]的就刚好是
'1. display ' 第4个字母,但起始偏移地址是从0开始的
就好比有些时候你混淆了某些语言里的数组下标概念一样,有些语言的数组下标是从0开始有些又是从1开始,呵呵 | | |
|
|
|
|
[第7楼]
[ 回复时间:2008-04-26 03:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:9
信誉值:0
注册日期:2008-04-17 02:17 |
倒,这有什么不同的,就是把常量地址自己作了一下加法 | | |
|
|
|
|
[第8楼]
[ 回复时间:2008-05-03 18:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:15
信誉值:0
注册日期:2008-05-03 15:26 |
我不清楚四楼说的,怎么以列序为主序的?我看是以行为序啊 | | |
|