王爽組合語言第二版實驗5

發布 科技 2024-02-28
4個回答
  1. 匿名使用者2024-02-06

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

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

    開始這樣寫。

    mov ax,a

    mov es,ax

    mov ax,c

    mov ds,ax

    將A段和B段的結果相加,最後放在C段中。

    ====所有程式如下***************==假設cs:code

    a segment

    db 1,2,3,4,5,6,7,8

    a ends

    b segment

    db 1,2,3,4,5,6,7,8

    b ends

    c segment

    db 0,0,0,0,0,0,0,0

    c ends

    code segment

    start:mov ax,a

    mov es,ax

    mov ax,c

    mov ds,ax

    mov bx,0

    mov cx,8

    s1:mov ax,es:[bx]

    add [bx],ax

    add bx,2

    loop s1

    mov ax,b

    mov es,ax

    mov ds,ax

    mov bx,0

    mov cx,8

    s2:mov ax,es:[bx]

    add [bx],ax

    add bx,2

    loop s2

    mov ax,4c00h

    int 21h

    code ends

    end start

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

    兩個週期的次數都應該是 4 而不是 8,所以 mov cx,8 應該改為 mov cx,4

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

    為什麼圖片無法上傳?

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

    CPU執行指令的起始位置由CS:IP確認,初始CS=2000H,IP=0

    即:mov ax,6622h cs=2000h ip=0003hjmp 0ff0,0100 cs=0ff0h ip=0100h; JMP 命令修改 CS 和 IP 暫存器的值。 您將被定向到的位址是:

    0ff0h*16+0100h=10000h

    mov ax,2000h cs=0ff0h ip=0103hmov ds,ax cs=0ff0h ip=0105hmov ax,[0008] cs=0ff0h ip=0108hmov ax,[0002] cs=0ff0h ip=010bh當沒有跳轉命令時,ip的值始終指向下乙個命令的位置。 也就是說,下乙個IP位址的值是當前IP值+當前指令長度。

    理解了這一點,以上都不是問題。

相關回答
10個回答2024-02-28

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

7個回答2024-02-28

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