|
主题 : : 问题7.9,请高手指点: [待解决] |
回复[ 5次 ]
点击[ 580次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-10-31 20:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53 |
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,16
mov bx,0
mov cx,4
s0:
push cx
mov si,0
mov cx,4
s:
mov al,[bx+si+3]
and al,11011111b
mov [bx+si+3],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-11-01 09:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06 |
|
|
|
|
|
[第2楼]
[ 回复时间:2007-11-01 10:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:40
信誉值:2
注册日期:2007-06-26 11:53 |
|
|
|
|
|
[第3楼]
[ 回复时间:2007-11-08 18:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-09-29 20:49 |
|
|
|
|
|
[第4楼]
[ 回复时间:2007-11-14 16:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:19
信誉值:0
注册日期:2007-10-31 16:24 |
楼主的程序完全正确!其实这道题可以直接采用mov si,3,然后后面偏移量就用[bx+si]两个变量表示。 | | |
|
|
|
|
[第5楼]
[ 回复时间:2007-11-22 09:07 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-11-12 12:37 |
我的代码. 和楼主还是有很大的差距呀
ASSUME CS:CODESG,SS:STACKSG,DS:DATASG
STACKSG SEGMENT
DW 0,0,0,0,0,0,0,0
STACKSG ENDS
DATASG SEGMENT
DB '1. display '
DB '2. brows '
DB '3. replace '
DB '4. modify '
DATASG ENDS
CODESG SEGMENT
START:
;add my code
MOV AX,STACKSG
MOV SS,AX
MOV SP,8
MOV AX,DATASG
MOV DS,AX
MOV CX,4
MOV BX,0
S1:
PUSH CX
;PUSH BX 不需要
MOV CX,4
MOV AH,0
S2: MOV SI,3
MOV AH,[BX+SI]
; OR AH,11011111B
AND AH,11011111B
MOV [BX+SI],AH
INC SI
LOOP S2
;POP BX
POP CX
ADD BX,10H
LOOP S1
MOV AX,4C00H
INT 21H
CODESG ENDS
END START | | |
|