
;C程式轉彙編(或運算連結)
DATAS SEGMENT
a Dw 5
b dw 6
cc dw 7
d dw 8
m dw 2
n dw 2
string db 6 dup(?)
DATAS ends
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS
START:
mov AX,DATAS
mov DS,AX ;把需要比較的兩個數字放入兩個寄存器中
mov ax,a
mov bx,b
cmp ax,bx
jb Rm ;當a<B時跳轉到rm
mov m,0 ;當a>b時為假是以m指派為0
;上述内容給等價于m=a<>>b
mov ax,cc
mov bx,d
cmp ax,cc
ja Rn
mov n,0
;上述内容給等價于n=c>d
jmp exit
Rm:
mov m,1
jmp exit
Rn:
mov n,1
jmp exit
exit:
mov si,offset string
mov AX,m
and AL,0FH
add al,30H
mov [si],al
;把m轉化為ASCII碼并存入string中
xor cx,cx
mov cl,3
;上述兩句設定循環次數
lp:
inc si
mov byte ptr [si],20H ;20H代表空格
loop lp
;利用循環添加3個空格 代替\t
inc si
mov AX,n
and AL,0FH
add al,30H
mov [si],al
;把n轉化為ASCII碼并存入string中
mov byte ptr [si+1],'$'
;為字元串string加上結束符
lea dx,string
mov ah,09h
int 21H
mov ah,4ch
int 21H
CODES ends
end START
<hr>
1 ;C程式轉彙編(與運算連結)
2 DATAS SEGMENT
3 a Dw 5
4 b dw 6
5 cc dw 7
6 d dw 8
7 m dw 2
8 n dw 2
9 string db 6 dup(?)
10 DATAS ends
11 CODES SEGMENT
12 ASSUME CS:CODES, DS:DATAS
13 START:
14 mov AX,DATAS
15 mov DS,AX ;把需要比較的兩個數字放入兩個寄存器中
16
17 mov ax,a
18 mov bx,b
19 cmp ax,bx
20 jbe Rm ;當a<=B時跳轉到rm
21 mov m,1 ;當a>b時為真是以m指派為1
22 ;上述内容給等價于m=a>b
23 mov ax,cc
24 mov bx,d
25 cmp ax,cc
26 jbe Rn
27 mov n,1
28 ;上述内容給等價于n=c>d
29 jmp exit
30
31 Rm:
32 mov m,0
33 jmp exit
34 Rn:
35 mov n,0
36 jmp exit
37 exit:
38 mov si,offset string
39 mov AX,m
40 and AL,0FH
41 add al,30H
42 mov [si],al
43 ;把m轉化為ASCII碼并存入string中
44 xor cx,cx
45 mov cl,3
46 ;上述兩句設定循環次數
47 lp:
48 inc si
49 mov byte ptr [si],20H ;20H代表空格
50 loop lp
51 ;利用循環添加3個空格 代替\t
52 inc si
53 mov AX,n
54 and AL,0FH
55 add al,30H
56 mov [si],al
57 ;把n轉化為ASCII碼并存入string中
58 mov byte ptr [si+1],'$'
59 ;為字元串string加上結束符
60 lea dx,string
61 mov ah,09h
62 int 21H
63 mov ah,4ch
64 int 21H
65 CODES ends
66 end START
"你的指尖,擁有改變世界的力量! "
歡迎關注我的個人部落格:https://sugarat.top