關於組合語言中的PUSH問題

2021-03-10 19:22:37 字數 1205 閱讀 9293

1樓:匿名使用者

每次repet開始,來cx是需要檢測的字元數自,si是需要bai檢測字元系列du

一端位址

如對字zhi符系列檢測時:abcdefaceda

首次進入,

daocx=11,si指向第乙個字元

push cx在堆疊儲存cx,

迴圈利用cx,結合loop ***p實現整個字元系列遍歷檢測(所謂的內迴圈)

取出cx賦予dx,--dx,檢測是否為零,即是否還有字元需要檢測

【事實上push,pop這些操作你只需當它是引數傳遞與儲存即可】事實上

第二行與第三行push cx,pop dx完全沒意義,可以去掉

事實上,在next1子指令系列中

可以不用dx,直接使用 pop cx, 掉dec dx與mov cx,dx,將jnz repet 改為loop repet

順便說一句,事實上該程式的si事實上是:第一次遍歷先指向最後乙個字元,然後向前遍歷;第二次遍歷指向倒數第二個字元,然後向前遍歷;。。。

2樓:

基本的copy框架bai如下自

du己分析下不難

zhi理解!dao

repet:

push si

push cx

push cx

pop dx

......

next1: pop dx

pop si

dec si

dec dx

mov cx,dx

jnz repet

3樓:匿名使用者

推ds小斧頭,斧頭

push ax

***程式通常使用,儲存在ds:0000乙個int 20h指令,執行上面的**,以便使用retf int 20h ,從而使該程式結束。

4樓:匿名使用者

第一次是儲存cx,第二次是將cx值傳遞給dx

5樓:匿名使用者

所以專業,你為什麼不讀書了嗎?

資料暫存器累加器,通用暫存器。累加器保

回存的計算結答果,通用暫存器儲存資料。

**段,當然,是儲存當前正在執行的**;

資料段的資料儲存在當前程式;

儲存的返回位址和程式引數(位址堆疊段)子程式呼叫;

的其他部分也儲存資料,但一般儲存的批處理計算的結果。

關於組合語言問題入棧出棧什麼用,組合語言中入棧出棧問題

組合語言中堆疊的操作有專門的語句指令。入棧指令是 push 出棧指令是 pop 比如 mov a,30h 將乙個壓縮bcd碼送累加器apush acc 壓棧保護 anl a,0fh 保留低四位 mov 30h,a 回送給30h pop acc 出棧 swap a 高低四位互換 anl a,0fh 保...

求助!組合語言MOV問題急求助組合語言中mov指令和add指令用法

1 我覺得不可以。2 lea是傳運算元位址,mov是移動位址中的資料 當然,這個資料還可能為乙個位址 3 中括號表示間接定址,對應暫存器中資料為二級位址,然後從二級位址中取出儲存的資料。4 期待其它答案。其它參考資訊 0.lea指令具有單時鐘週期,執行效率很高。1.它是cpu位址生成單元參與運算的,...

組合語言中WAIT啥意思,組合語言中LOOPNE l20什麼意思

1 wait 當晶元引線test為高電平時使cpu進入等待狀態.2 組合語言 assemblylanguage 是面向機器的程式語言。在組合語言中,用助記符 memoni 代替操作碼,用位址符號 symbol 或標號 label 代替位址碼。這樣用符號代替機器語言的二進位製碼,就把機器語言變成了組合...