问题—— 在8086微处理器中编写程序,用第二个阵列的8位n个数确定第一个阵列对应的8位n个元素的模,其中,大小“n”存储在偏移量500处,第一个数组的编号从偏移量501存储,第二个数组的编号从偏移量601存储,并将结果编号存储到第一个数组,即偏移量501中。
null
例如——
算法-
- 将500存储到SI,601存储到DI,并将数据从偏移量500加载到寄存器CL,并将寄存器CH设置为00(用于计数)。
- 将SI的值增加1。
- 从下一个偏移量(即501)将第一个数字(值)加载到寄存器AL。
- 在收银台存储00。
- 将寄存器AX中的值除以偏移量DI处的值。
- 将结果(寄存器AH的值)存储到内存偏移量SI。
- 将SI的值增加1。
- 将DI的值增加1。
- 循环到6以上,直到寄存器CX得到0。
项目-
内存地址 | 助记符 | 议论 |
---|---|---|
400 | MOV SI,500 | SI |
403 | MOV-CL[SI] | CL |
405 | MOV CH,00 | CH |
407 | 公司SI | SI |
408 | 莫夫迪,601 | DI |
40B | MOV AL[SI] | AL |
40D | MOV啊,00 | 啊 |
40F | 分区[DI] | AX=AX/[DI] |
411 | MOV[SI],啊 | 啊->[SI] |
413 | 公司SI | SI |
414 | 公司 | DI |
415 | 回路40B | 如果是CX,跳到40B=0和CX=CX-1 |
417 | HLT | 终止 |
解释——
- MOV SI,500: 将SI的值设置为500
- MOV CL[SI]: 将数据从偏移量SI加载到寄存器CL
- MOV CH,00: 将寄存器CH的值设置为00
- 公司SI: 增加SI值1。
- MOV DI,600: 将DI的值设置为600。
- MOV AL,[SI]: 将值从偏移量SI加载到寄存器AL
- MOV啊,00: 将寄存器AH的值设置为00。
- DIV[DI]: 将寄存器AX的值除以偏移量DI处的内容。
- MOV[SI],啊: 在偏移量SI处存储寄存器AH的值。
- 公司SI: 增加SI值1。
- 包括: 将DI的值增加1。
- 循环408: 如果CX不是0且CX=CX-1,则跳转到地址408。
- HLT: 停止
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END