組合語言 第九章 實驗

2021-08-25 05:59:51 字數 1422 閱讀 4523

可以正常執行。

分析,前面的程式都很簡單,沒啥問題,到了

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...