|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
|
|