实验九
把程序放在cmd和command中执行结果一样,到loop s的时候用p后出现的效果都是每行开头少一个w,如果在loop s指令之前用g指令就不会出现这种情况,就会完整显示。??由于还不能上图,先吧程序放上,在尽量把复制的图上上来吧。。
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
datasg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov si,0
mov cx,16
s: mov al,[bx]
mov ah,2h
mov es:[si+06e0h+0040h],ax
mov ah,24h
mov es:[si+0780h+0040h],ax
mov ah,71h
mov es:[si+0820h+0040h],ax
inc bx
add si,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
这是用g指令的情况:
-r
AX=0000 BX=0000 CX=0045 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14F7 ES=14F7 SS=1507 CS=1508 IP=0000 NV UP EI PL NZ NA PO NC
1508:0000 B80715 MOV AX,1507
-g
Program terminated normally
- welcome to masm!
welcome to masm!
welcome to masm!
这是一步步执行到loop s的时候:
-t
AX=7177 BX=0000 CX=0010 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1507 ES=B800 SS=1507 CS=150elcome to masm! UP EI PL NZ NA PO NC
1508:002A 43 INC Belcome to masm!
-t elcome to masm!
AX=7177 BX=0001 CX=0010 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1507 ES=B800 SS=1507 CS=1508 IP=002B NV UP EI PL NZ NA PO NC
1508:002B 83C602 ADD SI,+02
-t
AX=7177 BX=0001 CX=0010 DX=0000 SP=0000 BP=0000 SI=0002 DI=0000
DS=1507 ES=B800 SS=1507 CS=1508 IP=002E NV UP EI PL NZ NA PO NC
1508:002E E2E3 LOOP 0013
-p
AX=7121 BX=0010 CX=0000 DX=0000 SP=0000 BP=0000 SI=0020 DI=0000
DS=1507 ES=B800 SS=1507 CS=1508 IP=0030 NV UP EI PL NZ AC PO NC
1508:0030 B8004C MOV AX,4C00 |