使用組合語言查詢三個數字的中間大小的數字並輸出。

發布 教育 2024-03-08
4個回答
  1. 匿名使用者2024-02-06

    24) 指示符:mm 函式:求出單位元組十六進製無符號資料塊的極值。

    入口條件:資料塊的第乙個位址在DPTR中,資料塊的數量在R7中。

    影響資源:PSW、A、B、R1 R7 堆疊要求:4 位元組。

    mm: mov b,r7 ;可以儲存的資料數。

    movx a,@dptr ;讀取第乙個資料。

    mov r6,a ;作為最大值的初始值。

    mov r7,a ;也作為最小值的初始值。

    mov a,dpl ;取第乙個資料的位址。

    mov r3,a ;位址的初始值儲存為最大值。

    mov r5,a ;它還用作儲存位址初始值的最小值。

    mov a,dph

    mov r2,a

    mov r4,a

    mov a,b ;要檢索的資料數。

    dec a ;減去 1 得到您需要比較的次數。

    jz mme ;只有乙個資料,沒有必要比較。

    mov r1,a ;儲存比較次數。

    push dpl ;受保護資料塊的第乙個位址。

    push dph

    mm1: inc dptr ;指向新資料。

    movx a,@dptr ;讀取此資料。

    mov b,a ;救。

    setb c ;與最大值相比。

    subb a,r6

    jc mm2 ;不要超過電流最大值並保持電流最大值。

    mov r6,b ;如果超過當前最大值,則更新最大儲存位址。

    mov r2,dph ;此外,請更新最大儲存位址。

    mov r3,dpl

    sjmp mm3

    mm2: mov a,b ;與最低限度相比。

    clr csubb a,r7

    jnc mm3 ;大於或等於當前最小值,保持當前最小值。

    mov r7,b ;更新最小值。

    mov r4,dph ;更新最小儲存位址。

    mov r5,dpl

    mm3: djnz r1,mm1 ;處理所有資料。

    pop dph ;恢復資料位址。

    pop dpl

    mme: ret

  2. 匿名使用者2024-02-05

    程式應該是自己寫的,你問別人的不是你自己的。

  3. 匿名使用者2024-02-04

    答:landlord 程式中存在三個語法錯誤:

    錯誤 1:段暫存器 DS 未初始化,ASSUME 僅將 DSEG 與 DS 暫存器關聯,而沒有將資料段的段基址儲存在段暫存器 DS 中,因此需要新增語句:"mov ax,dseg mov ds,ax";

    錯誤 2:由於此程式中日期中的所有資料都是 8 位二進位的,因此如果將 8 位暫存器分配給 16 位暫存器,則 8 位高暫存器的不定數量將中斷程式;

    錯誤3:RET指令是子程式的返回指令(此程式中沒有子程式),RET無法實現房東想要的退出程式操作,可以使用jmp跳轉到程式末尾退出程式。

    程式邏輯:房東的邏輯是通過氣泡排序的方式,將最大數量存入 CL,將最小數量存入 AL。 修改後的程式通過除錯跟蹤達到了這個效果,發現沒有邏輯錯誤。

    圖A是修改後的源程式,圖B是除錯過程中程式執行和退出之前暫存器中的資料儲存(從註解中可以看出:Al儲存最小數字,BL儲存中間數字,CL儲存最大數字)。

    圖 A: 圖 B:

  4. 匿名使用者2024-02-03

    1.在鍵盤上輸入乙個數字,如果大於7,則需要重新輸入0 7,無需重新輸入。

    2. 如果小於 7,則顯示 *2 的計算結果,請注意,這裡有兩種情況:

    等於 7,我該怎麼辦?

    a、如果輸入的數字小於或等於4,則計算結果為數字(0-9)顯示。

    b,如果輸入數字大於 4,則結果是字母(a 到 f)顯示 a、c。

    等於 7,我該怎麼辦?

相關回答
10個回答2024-03-08

組合語言可以說是機器語言,直接與硬體打交道的是將計算機語言轉化為機器可以識別的1001。 它不會過時,至少在這十年內不會。 不過,這主要是關於硬體方面。 >>>More

7個回答2024-03-08

後一條指令是div bx,表示你正在做16位除法,那麼預設被除數是[dx,ax],其中dx是被除數較高的16位,ax是被除數的較低16位,其實你的被除數只儲存在ax中,那麼被除數的高位應該清零, 例如,如果你想計算 72 8,但被除數必須是 4 位數字,那麼你的被除數應該寫成 0072 嗎? >>>More

4個回答2024-03-08

其中有四個部分,分別是 A、B、C 和 Code。

區段 a、b 和 c 都可以視為資料區段。 >>>More

2個回答2024-03-08

void ziq() 部分沒有說什麼 Sark,只是把它轉過來。 >>>More

6個回答2024-03-08

**Microsoft 核心技術系列之道。

摘要。 從 Microsoft 內部人士的角度來看,本書揭示了軟體編碼、軟體測試和專案管理的各個方面。 >>>More