王爽《組合語言》實驗7

2022-08-19 10:06:14 字數 1406 閱讀 2201

因為實驗7中的資料太多,我就對其縮減了一些。

因為其中用到很多的暫存器,但是每個暫存器都有限制規則,所以要精心分配暫存器。

最先分配的是兩個段暫存器,data用ds存放, table用es存放。

然後要確定迴圈使用的暫存器cx;

乙個指向table位址的暫存器bp,乙個指向年份和收入的暫存器di,乙個指向雇員的暫存器si;

最後確定使用div命令所需要的ax和dx。

分配好暫存器後就是進行編碼工作了。

所以只能用乙個臨時的暫存器做轉換,使得乙個命令用了兩個指令來實現。

assume cs:code

data segment

db '1975','1976','1977','1978','1979','1980','1981','1982'

dd 16,22,100,1000,345678,435576,1234567,7652351

dw 3,234,45,56,435,565,4546,4354

data ends

table segment

db 8 dup ('year summ ne ?? ')

table ends

code segment

start: mov ax, data

mov ds, ax

mov ax, table

mov es, ax

mov di, 0

mov si, 64

mov bp, 0

mov cx, 8

s: mov ax, ds:[di]

mov es:[bp], ax

mov ax, ds:[di+2]

mov es:[bp+2], ax

mov byte ptr es:[bp+4], 32

mov ax, ds:[di+32]

mov es:[bp+5], ax

mov ax, ds:[di+32+2]

mov es:[bp+7], ax

mov byte ptr es:[bp+9], 32

mov ax, ds:[si]

mov es:[bp+10], ax

mov byte ptr es:[bp+12], 32

mov dx, es:[bp+7]

mov ax, es:[bp+5]

div word ptr es:[bp+10]

mov es:[bp+13], ax

mov byte ptr es:[bp+15], 32

add di, 4

add si, 2

add bp, 16

loop s

mov ax, 4c00h

int 21h

code ends

end start

王爽 組合語言 實驗7

assume cs codesg,ds data ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 db 1983 1984 1985 1986 1987 1988 1989 1990 db 1991 1992 1993...

王爽 組合語言 實驗10 1

assume cs code,ds data data segment db welcome to masm 0 data ends code segment start mov dh,8 行號 mov dl,3 列號 mov cl,2 顏色 mov ax,data mov ds,ax mov si...

王爽 組合語言 實驗9

assume cs code data segment db welcome to masm db 00000010b,00100100b,01110001b data ends code segment start mov ax,data mov ds,ax mov si,07c0h 臨時,可調整...