|
发表于 2019-3-13 23:44:38
|
显示全部楼层
本楼为最佳答案
好了
- .model small
- .stack
- ;这是显示数据中出现多少个1的程序
- .data
- number dw 0000111100001111B ;出现问题的地方
- db 1, 2, 3, 4, 5, 0ffh
- db 11h, 12h, 13h, 14h, 15h, 0ffh
- .code
- start:
- mov ax, @data
- mov ds, ax
- mov bx, number
- ;mov bx,0000111100001111B ;本来是想写成 mov bx,offset number
- xor dx,dx ;清零dx
- again: cmp bx,0 ;比较是不是0
- jz done ;是0就退出循环
- shl bx,1 ;左移1
- adc dl,0 ;加上CF
- jmp again
- done: cmp dl,10 ;比较是不是10
- jb digit ;不是就加'0'之后显示
- push dx ;显示'1'
- mov dl,'1'
- mov ah,2
- int 21h
- pop dx
- sub dl,10
- digit: add dl,'0'
- mov ah,2
- int 21h
- mov ah,4ch
- int 21h
- end start
复制代码 |
|