可以正常執行。
分析,前面的程式都很簡單,沒啥問題,到了
mov ax,cs:[si]
mov cs:[di],ax
這裡,由於s2處的jmp short s1指令jmp機器碼為eb,之後記錄的是跳轉的距離,這裡向上跳到s1處,所以jmp short s1只佔2個位元組,所以jmp short s1處的**就被複製到s處,由於記錄的是向上跳相同的距離,所以當s0執行jmp short s之後,又執行了跳到mov ax,400h處,正常結束。
個人**:
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 2h,24h,71h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start :mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b872h
mov es,ax
mov cx,3
mov si,16
s1:push cx
mov bx,0
mov bp,0
mov cx,16
s2:mov al,ds:[bx]
mov es:[bp],al
inc bx
inc bp
mov al,ds:[si]
mov es:[bp],al
inc bp
loop s2
inc si
mov ax,es
add ax,0ah
mov es,ax
pop cx
loop s1
g:mov cx,3
loop g
mov ax,4c00h
int 21h
code ends
end start
效果:
王爽 組合語言 第九章實驗9
用單迴圈實現的.assume cs codesg,ds datasg datasg segment db welcome to masm db 02h,02h,02h,02h,02h,02h,02h,02h,42h,42h,42h,71h,71h,71h,71h,71h datasg ends co...
王爽《組合語言》第九章實驗9
這個實驗的內容不是太麻煩,雙層的迴圈 前幾章有示例 實驗9內容如下 我的 如下 assume cs codesg,ds datasg datasg segment dw 0 儲存外層的迴圈次數 db 2h 綠色字 db 24h 綠底紅字 db 80h 白底藍字 db 0c2h 紅底綠字 db wel...
王爽 組合語言 第九章 實驗八
輸入程式 assume cs codesg codesg segment mov ax,4c00h int 21h start mov ax,0 s nop nopmov di,offset s mov si,offset s2 mov ax,cs si mov cs di ax s0 jmp sh...