mul和div

mul指令

  1. 两个相乘的数,如果都为8位,其中一个默认存放在AL,另一个放在8位寄存器或者内存字节单元中,结果是16位的,默认存放在AX中
  2. 两个相乘的数,如果都为16位,其中一个默认存放在AX,另一个放在16位寄存器或者内存字单元中,结果是32位的,高位默认存放在DX中,低位存放在AX中

div指令

  1. 除数有8位和16位,存放在reg或者内存单元
  2. 除数为8位,被除数为16位,被除数默认存放在AX中。除数为16位,被除数为32位,被除数高位存放在DX中,低位存放在AX中
  3. 结果,除数为8位,商存储在AL,余数存储在AH。除数为16位,商存储在AX,余数存储在DX

实验九 打印

打印helloworld

尤其要注意 mov al, [bp],这里是取出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
assume cs:code

data segment
db 'Hello World'
db 24h
dw 1824
data ends

code segment

start:
mov ax,data
mov ds,ax

mov ax, 0b800h
mov es, ax

mov si,0
mov di,0

mov bx, ds:[12]
mov bp, ds:[11]

mov cx, 11
s:
mov al, ds:[si]
mov es:[bx+di], al
mov al, [bp]
mov es:[bx+di+1], al

inc si
add di,2
loop s

mov ax,4c00h
int 21h

code ends
end start