很簡單的彙編問題,很簡單的彙編問題

時間 2022-11-24 15:40:37

1樓:

;且看:

ascii proc near

mov si, 4

mov cx, 10

r2: mov dx, 0

div cx

add dl, 30h

dec si;這樣的話,有兩個辦法,1.si作為乙個返回值,你需要在返回後及時處理,或在內部處理,如在ret前加add bx,si,以便得到正確的字串首位址,2.將[bx]-[bx+si-1]之間的單元置為30h/20h,即高位填零/空格。

這兩種方法得到不同的字串,但都可以保證邏輯正確。另外,你的快取區是否小了些?

mov [bx][si], dl

cmp ax,10

ja r2;主要問題,小於10就不要了,這個可是最高位,應該是大於0retascii endp

********************====補充********************====

懶惰是魔鬼

懶惰要不得

學程式設計要不得

彙編更要不得

我們要鑑定貫徹最高指示:自己動手...

彙編很簡單的問題

2樓:

我靠..

咋這麼像我們學校的實驗呢 ?

呵呵 中間的**...

mysub1 proc near

(push ds) 這個和後面的pop可以不要,不要是一樣的正確。

mov dh,[si]

mov dl,[si]

dec cx

inc si

a1: cmp dh,[si]

jb a2

cmp dl,[si]

jnb a3

(inc si

loop a1

jmp a4) 這個括號的也可以不要,但是嚴謹點就寫起嘛!

a2: mov dh,[si]

inc si

loop a1

jmp a4

a3: mov dl,[si]

inc si

loop a1

jmp a4

a4: (pop ds)

retok 完了。這個應該對的了。我在實驗室執行了的. 呵呵兄弟..記得給我分哦!! 呵呵

很簡單的乙個彙編小問題……

3樓:匿名使用者

你的程式可以這麼來寫:

data segment

msg db 'hellow world!$'

data ends

stack segment para stack 'stack'

db 100 dup(?)

stack ends

code segment

assume cs:code,ds:data,ss:stackstart:

mov ax,data

mov ds,ax

mov dx,offset msg

mov ah,9

int 21h

mov ah,4ch

int 21h

code ends

end start

首先說明下:

assume cs:code,ds:code 是不對的應該是assume cs:code,ds:data就你的問題mov ax,cs 是可以不用的,但是mov ax,data

mov ds,ax

這兩句是必須的,因為

assume cs:code,ds:data是一句相當於說明性的文字即:cs指向**段,ds指向資料段但是並沒有實際指向

而mov ax,data

mov ds,ax這兩句就是是ds實際的指向資料段,當然cs你不用管預設就行

基本上就這樣就行了,你可以將

data segment

msg db 'hellow world!$'

data ends

stack segment para stack 'stack'

db 100 dup(?)

stack ends

code segment

assume cs:code,ds:data,ss:stackstart:

mov ax,data

mov ds,ax

這幾句理解為程式的初始化,亦即格式要求

這樣程式就不會錯了。

希望對你有用。

簡單的彙編問題

4樓:匿名使用者

19行:「mov ax,data ;程式從start開始」問題在於放入ax暫存器的不應是乙個段,而應該是段的位址,所以在「date」前一改加上「offset」操作符才對,應改為:「mov ax, offset data」

還有30行:「end start」這是個錯誤的語法,應去掉「 start」

所以整個程式改為:

title ***hello,world***

;定義資料段

data segment

msg db 'hello,world!','$'

data ends

dispstr macro

mov ah,09h ;9號功能呼叫:顯示字串

int 21h ;完成輸出顯示

endm

;定義**段

code segment

assume cs:code ;規定cs的內容

assume ds:data ;規定ds的內容

start:

mov ax, offset data ;程式從start開始

mov ds,ax ;ds置初值,data的段位址

lea dx,msg ;得到字串"hello world!"的偏移位址

dispstr

dispstr

dispstr

exit: mov ah,4ch ;4c號功能呼叫:終止當前程式並返**用程式

int 21h ;返回dos

code ends ;**段結尾

end ;結束彙編

這樣至少沒有編譯錯誤了!但是連線好像還是有錯!你自己改了!

乙個超簡單的彙編問題,是人就能答出來

5樓:圓球球

在彙編中等價的語句很少,只能說他們檢查的東西是否一樣或者實現的功能是否相同。

je和jmp是不等價的。

jmp是不判斷,強行跳轉。

je是判斷零標誌(zf)是否被置為。

如果說等價的東西,jz和je都是檢查零標誌的。

6樓:艾任

既然是人就能答出來,那你怎麼還問別人呢

乙個簡單的彙編問題

7樓:沙支誇依

從題目可以看出你問的應該是8086,下的彙編問題。

首先講講背景知識吧。早期pc位址匯流排只有20根,也就是說,系統可以定址2的20次方,即1m byte.可是我們的8086的暫存器沒有20位的,只有16位,比如cs、ds、es、ss段基址暫存器,ax,bx這些通用暫存器,都是16位的。

所以,要定址1m byte的空間。只能使用這種「段+偏移」的二維方式表示。

舉例來說,0000:0401 (以下表示位址的數字均為16進製制)這個位址,按前述的計算方式,實際對應的物理單元位址是 段位址0 * 16 +偏移位址0401,即 00401 處的物理單元;同乙個物理單元也可由 0040:0001 這對段/偏移量來表示(計算方法相同),或者由 003f:

0011 表示(003f0+0011)= 0401。

---------------------------------------------

ok,說到這裡,背景你應該已經看的差不多了。我們就來討論你問的這個問題吧.20000h這個位址單元,sa(段基址) 最大值很好確定,只要偏移最小,sa自然是最大的嘍。

所以maxsa=20000h/10h = 2000h

那minsa呢?

當然是偏移最大的時候,sa自然最小了。可是什麼時候才是偏移最大呢?

ffffh?當然不行。因為我們目標位址單元最後四位是0h,所以偏移的最低四位也必須是0.

即最大偏移是fff0h嘍。那剩下的,應該好算了吧。套用公式, minsa*10h+fff0h=20000h <==> minsa = 1001h

-----------------------------

嘍索了半天,最後得到的極限值就是:

1001:fff0 = 20000h

2000:0000 = 20000h

8樓:匿名使用者

一樓分析的很細,達到大學老師的水平了

9樓:匿名使用者

我也在為此題糾結,學習了。。

組合語言學習問題,很簡單

10樓:箭zai弦

乙個段最大為64k 也就是0ffffh 所以段位址最小為10001h(這是王爽書上的一題吧,這是我的看法,不過不知道為什麼網上有人說是0

11樓:文刀舍予

由:段位址*10h+偏移位址=實際位址

得:段位址=(實際位址-偏移位址)/10h設:段位址為y,偏移位址為x,由題意得:

y=(20000h-x)/10h (x∈)該函式為單調遞減函式,證明過程略

所以:當x=0時,y取得最大值,為20000h/10h=2000h當x=ffffh時,y取得最小值,為(20000h-ffffh)/10h=1000.1h

根據題意,應該向上取整,結果為1001

12樓:我無語呀

記憶體位址=段位址*16+偏移位址,記憶體形式為****:****,而偏移位址最大為ffff所以當為1001:fff0的時候為20000h,這個時候應該是最小吧.

關於地球公轉的問題很簡單很簡單啊

我狂暈!這麼簡單的題目這麼多人做錯啊!正確答案是b啊,近日點的日期是一月初.一月初明白是什麼意思不?各位大哥啊!a就錯了,自然c也錯了,12.22是冬至,北半球太陽高度角達一年的最小值,過了12.22那天,太陽直射點就開始向北移動!廣州的的緯度比北京低,冬天的時候白晝比北京長!樓主我的答案你滿意!項...

簡單的彙編問題,乙個簡單的彙編問題

19行 mov ax,data 程式從start開始 問題在於放入ax暫存器的不應是乙個段,而應該是段的位址,所以在 date 前一改加上 offset 操作符才對,應改為 mov ax,offset data 還有30行 end start 這是個錯誤的語法,應去掉 start 所以整個程式改為 ...

很簡單的相對論問題, 懸賞 很簡單的相對論問題。。。

lz之所以得到兩個答案,是因為lz沒弄清楚這裡的30s是針對誰而言的。為了方便說明問題,不妨令 飛船上的時鐘走了30個格仔 這個事件為p事件 對於p事件發生所經歷的時間,顯然不同參考係的觀測者測得的結論不一樣。就p事件而言,由於p事件中的鐘是飛船上的,故而飛船參考係測得p事件發生經歷了30s,地面觀...

數學問題,很簡單的,乙個數學問題,很簡單的

上式可化為 左右同 2 x 14x 5 6 0 x 7 2 7x 7 5 6 0 x 7 49 5 6 0 完全平方公式 x 7 根號 299 6 x1 根號 299 6 7 x2 根號 299 6 7 解 因為 1 2 x平方 7x 5 12 0所以在兩邊同乘以 12得 6x平方 84x 5 0 ...

英文語法的問題很簡單

如果你想說你喜歡做什麼,用什麼,只能用兩種句式。1 i like to use 2 i like using 要不你就直接說 i like pens 如果你說 i like use the pen 人家肯定懂你是什麼意思,但是語法上就不對,跟你關係好的可能會告訴你,要不然麼。那裡的老師批作文時一般會...