|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 899599 于 2019-3-13 23:54 编辑
大神们好,本人初学汇编语言。现在遇到了一个问题
先附上代码
- .model small
- .stack
- ;这是显示数据中出现多少个1的程序
- .data
- number dw 0000111100001111B ;出现问题的地方
- .code
- start: 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
复制代码
上传不了图抱歉
好了
- .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
复制代码
|
|