因为本人作业中有几题故此问一下该如何做.
data segment
da1 dw 123H,456H,0AB00H
da2 DB 12H,34H,56H,0ABH
DB $-da2
Buf1 DB 10H DUP(1,2,3)
Da1 ends
试问执行下列代码后的结果:
1)
Mov si,Offset da1
mov di,offset buf1
mov cx,5
Lop :mov al,[si]
mov [si],al
inc si
inc di
loop lop
buf1的前五个字节单元的内容依次是什么?
2) mov bx,ds:[0006]
and bx,0ffh
and bx,[bx]
bx=???
3) mov dx,size buf1
add dx,word ptr da2+4
(dx)=???
4) lea si,da2
mov cl,4[si]
mov ch,length buf1
(cx)=?????
2.设已定义数据段:
data segment
?????
da1 db XX,XX
DA2 DB XX,XX
Adrr dw da1,da2
data ends
为使adrr+2 字存储单元中存放内容为 "0024H ",上面??的地方填写什么?
------解决方案--------------------------------------------------------
把第一题写成这样。上机编译、DEBUG,一定能看到作业的答案的:
======================
data segment
da1 dw 123h,456h,0AB00H
da2 db 12h,34h,56h,0ABh
db $-da2
buf1 db 10h dup(1,2,3)
data ends
code segment
assume cs:code,ds:data
main:
mov ax,data
mov ds,ax
mov si,offset da1
mov di,offset buf1
mov cx,5
lop: mov al,[si]
inc si
inc di
loop lop
mov bx,ds:[0006]
and bx,0ffh
and bx,[bx]
;bx=???
mov dx,size buf1
add dx,word ptr da2+4
;dx=???
lea si,da2
mov cl,4[si]
mov ch,length buf1
;cx=???
mov ah,4ch
int 21h
code ends
end main
第二题我就不想说了!
------解决方案--------------------------------------------------------
Mov si,Offset da1
mov di,offset buf1
mov cx,5
Lop :mov al,[si]
mov [si],al
inc si
inc di
loop lop
那个mov [si],al你是想写mov [di],al吧
------解决方案--------------------------------------------------------
2.mov bx,ds:[0006]把ds区的0006单元取出付给bx我机子上是fef0
and bx,0ffh 对bx与0ff做于运算FEF0 AND 0FF = 00F0
and bx,[bx] 取bx的内容与00f0做与运算=0000