实验7主要是寻址方式与div指令的综合运用,这也是他的难点所在。
注:代码经masm5编译通过
div是个除法指令
先设a,b,c,d为整数,b≠0且0≤d<|b|
则 a=bc+d
其中a为被除数在div指令中有16位与32位之分。16位默认放在AX中,32位分高16位与低16位,高16位默认放dx低16位默认放ax。
便于记忆可以做如下理解:
若a在16位的值为1111111111111111b,则在32位中的值为0000000000000000111111111111111b。所以在32位中低16位默认放ax。
b为除数在div指令中有8位与16位之分,放在寄存器或内存单元中。8位的b对应16位的a,16位的b对应32位的a。
c为商d为余数,如果b为8位,则c放al,d放ah。若干b为16位,c放ax,d放dx。
以上便于记忆可以做如下理解:
a(16位,放AX)=b(8位,放8位寄存器或内存单元)c(放al,暂时不考虑溢出)+d(放ah,暂时不考虑溢出)
a(32位,高位dx 低位ax)=b(16位,放16位寄存器或内存单元)c(放ax,暂时不考虑溢出)+d(放dx,暂时不考虑溢出)
看表格:
1975 | 1976 | 1977 | 1978 |
1979 |
1980 | 1981 |
1982 |
1983 |
1 |
---|