日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转移指令检测题9

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转移指令检测题9 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

補全編程,利用loop指令,實現在內存2000H段中查找第一個值為0的字節,找到后,將它的偏移地址存儲在DX中

assume cs:code

code segment

? ? ? ?start:mov ax,2000h

? ? ? ? ? ? ? ?mov ds,ax

? ? ? ? ? ? ? ?mov bx,0

? ? ? ? ? ? s: mov cl,[bx]

? ? ? ? ? ? ? ?mov ch,0

? ? ? ? ? ? ? inc cx ? ? ? ? ? ?;此處為要填寫的空行 ??

? ? ? ? ? ? ? ?inc bx

? ? ? ? ? ? ? ?loop s

? ? ? ? ? ok:dec bx ? ? ? ? ? ? ?;dec指令的功能和inc相反,dec bx進行的操作為:(bx)=(bx)-1

? ? ? ? ? ? ? ?mov dx,bx

? ? ? ? ? ? ? ?mov ax,4c00h

? ? ? ? ? ? ? int 21h

code ends

end start

還有一個實驗記錄如下:

assume cs:codesg

codesg segment

? ? ? ? ? ?mov ax,4c00h

? ? ? ? ? ?int 21h

start: ? mov ax,0

? ? ?s: ? nop

? ? ? ? ? ?nop

? ? ? ? ? ?mov di,offset s

? ? ? ? ? ?mov si,offset s2

? ? ? ? ? ?mov ax,cs:[si]

? ? ? ? ? ?mov cs:[di],ax

? ? ?s0:jmp short s

? ? ?s1:mov ax,0

? ? ? ? ? int 21h

? ? ? ? ? mov ax,0

? ? ?s2:jmp short s1

? ? ? ? ?nop

codesg ends?

end start

單步調試結果如下:

對應的機器碼如下:

上面是兩張圖,中間有重

程序在跳到S處時,執行完指令后就跳到第一條指令去了。原因是jmp short s1對應的機器碼中給出的位移值,而不是目的地址,從圖中可以看出是F6,等于-10,即當前指令執行完成后IP+2然后-10,回到S1標號處,當把這條指令放到start的下一條語句時,它對應的機器指令指明,IP也應該-10,上移10個位置,所以就到了第一條指令mov ax 4c00h,而不是跳到s1處

轉載于:https://www.cnblogs.com/919czzl/p/4155267.html

總結

以上是生活随笔為你收集整理的转移指令检测题9的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。