組合語言王爽第三版第五章實驗四20190507

2021-09-21 14:44:55 字數 1278 閱讀 7723

1.程式設計,向記憶體0:200-0:23f依次傳送資料0~63(3fh)

assume cs:code

code segment

mov ax,0

mov ds,ax

mov bx,200h

mov cx,64

mov al,0

s:mov [bx],al

inc bx

inc al

loop s

mov ax,4c00h

int 21h

code ends

end

2.程式設計,向記憶體0:200-0:23f依次傳送資料0~63(3fh),只能使用9條指令。

其中包括mov ax,4c00h 和int 21h

分析:

除去兩條後,現在只能剩7條了。

那麼再來看下,

cx=64

loop s

又佔了兩條

只剩下五個位置了。

這時候就要簡化上面的程式了

這時候就要從改變段的表示入手了

**:

assume cs:code

code segment

mov ax,20h(為了簡化**)

mov ds,ax

mov bx,0

mov cx,64

s:mov [bx],bl

inc bx//換成bl也可以

loop s

mov ax,4c00h

int 21h

code ends

end

注意到低位加的時候是相同的,簡化了**
3.補全下面的程式,其功能是將「mov ax,4c00」之前的指令複製到記憶體0:200處。

assume cs:code

code segment

mov ds,ax

mov ax,0020h

mov es,ax

mov bx,0

mov cx,17h//前面的源程式在記憶體中總共佔了23位元組,這個是將源程式編譯連線之後用debug裡面的u命令檢視即可

s:mov al,[bx]

mov es:[bx],al

inc bx

loop s

mov ax,4c00h

int 21h

code ends

end

《組合語言》王爽第三版 實驗9

datas segment 此處輸入資料段 db w 00000010b,e 00000010b,l 00000010b,c 00000010b,o 00000010b db m 00000010b,e 00000010b,0,t 00100100b,o 00100100b,0 db m 01110...

王爽 組合語言第三版實驗7

這個題目做了很久,使用了2中方法做出了結果,不過目前在單步除錯時還有點疑問。題目 power idea公司從1975成立一直到1995年的基本情況被定義到了datasg中,程式設計將datasg段中的資料寫入到table段中,並計算21年中的人均收入 取整 結果儲存到table段中 兩種方法我都使用...

《組合語言(第三版)》王爽,實驗九

不知道為什麼,在win7下用的emu8086,顯示會錯位,到不了中間位置 在網上找了下別人的 發現即使是在別人那裡能正常顯示在中間位置,複製到我這裡都會顯示為上圖所示的樣子。下面是 定義資料段的時候為了後面不用將ascii碼和屬性分開讀取,就定義成如下這樣比較繁瑣的形式了。其實做的時候第一時間沒想到...