一、代码实现
1 ;目的:DIV指令练习 2 ;编写:Tony 3 ;语言:asm 4 ;时间:2020.3.26 5 6 ;要求:div计算datasg段中第一个数据除以第二个数据后的结果,商存在第三个数据的存储单元 7 8 assume cs:codesg,ds:datasg 9 10 datasg segment 11 dd 100001 ;该数据大于字型数据的最大值65535,因此需要将此数据存储在双字单元中 12 dw 100 13 dw 0 14 datasg ends 15 16 codesg segment 17 start: mov ax,datasg 18 mov ds,ax 19 20 mov ax,ds:[0] ;低16位数据存储在ax中 21 mov dx,ds:[2] ;高16位数据存储在dx中 22 div word ptr ds:[4] ;用dx:ax中的32位数据除以ds:[4]字单元中的数据 23 mov ds:[6],ax ;将商存储在ds:[6]字单元中 24 25 mov ax,4c00h 26 int 21h 27 28 codesg ends 29 end start
二、上机调试
1)单步调试下图命令后查看数据段中的数据
2)next
DA:AX=186A1,也就是10进制的100001,除以100后,AX=03E8,也就是10进制的1000
3)查看数据段中的第三个存储单元的数据
4)内存单元中红色框中的数据完全正确,调试结束