mov ds, ax mov es, ax
mov ah, 09h ;输出提示信息Please input a num: mov dx, offset inf int 21h
mov ah, 0Ah ;接收一个无符号十进制整数(小于65536) mov dx, offset ibuf int 21h
mov ax, 0
mov cl, ibuf+1;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中 mov ch, 0
mov si, offset ibuf+2 loop1: mov dx, 10 mul dx
and byte ptr[si], 0Fh add al, [si] adc ah, 0 inc si
loop loop1
mov bx, 0 loop2: shr ax, 1 adc bx, 0 cmp ax, 0 jnz loop2
mov ax, bx
mov di, offset obuf+5
;将ax中的二进制数转换为十进制数并以ascii的形式存于obuf mov byte ptr [di], '$' mov bx, 10 loop3: mov dx, 0 div bx
add dl, 30h dec di
mov [di], dl or ax, ax jnz loop3
mov ah, 09h ;输出提示信息The num of 1: mov dx, offset inf2 int 21h
mov ah, 09h ;将统计结果在屏幕上显示出来 mov dx, di int 21h
mov ax, 4c00h int 21h
6
end start
实验习题4源码:
; multi-segment executable file template.
.model small ;定义程序的存储模式(small表示小型模式) .stack ;定义堆栈段
.data ;定义数据段 N equ 5
ibuf db 4, 0, 3 dup(0)
inf1 db 'Please input N num(0-255):', 0ah, 0dh, '$'
inf2 db 'Sort:', 0ah, 0dh, '$' buf db N dup(0) obuf2 db 4 dup(0) obuf db 0ah, 0dh, '$' .code
start: mov ax, @data mov ds, ax
mov dx, offset inf1 ;输出提示信息 mov ah, 09h int 21h
mov di, offset buf
mov bx, N ;设置外层循环次数 loop1: mov dx, offset ibuf mov ah, 0Ah int 21h
mov cl, ibuf+1 ;设置内层循环次数 mov ch, 0
mov si, offset ibuf+2 mov ax, 0
loop2: mov dx, 10 ;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中 mul dx
and byte ptr[si], 0Fh add al, [si] inc si
loop loop2 mov [di], al inc di
mov dx, offset obuf ;回车换行 mov ah, 09h int 21h dec bx cmp bx, 0 jnz loop1
mov bx, N-1 ;比较大小
7
mov cx, bx mov dx, bx
mov di, offset buf loop3: mov si, di mov al, [di] inc si
loop4: cmp [si], al jbe loop5 mov al, [si] mov ah, [di] mov [si], ah mov [di], al loop5: inc si loop loop4 dec dx mov cx, dx inc di dec bx cmp bx, 0 jne loop3
mov dx, offset inf2 ;输出提示信息 mov ah, 09h int 21h
;结果输出 mov cx, N
mov si, offset buf
loop6: mov di, offset obuf2+3
;将buf中的二进制数转换为十进制数并以ascii的形式存于obuf2,并输出 mov byte ptr [di], '$' mov bx, 10 mov al, [si] mov ah, 0 loop7: mov dx, 0 div bx
add dl, 30h dec di
mov [di], dl or ax, ax jnz loop7 mov dx, di mov ah, 09h int 21h
mov dx, offset obuf mov ah, 09h int 21h inc si
loop loop6
mov ax, 4c00h
8
int 21h end start
3、实验结果
(1)实验结果
(2)实验习题1
程序流程图:
9
(3)实验习题2
10
微机原理与汇编语言_实验3_循环程序设计实验汇总



