汇编中的不同进制的输入与输出操作

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

从键盘上接受两个4位十六进制数,在下一行以二进制形式输出两数的异或的结果。并将此二进制数的结果中的第3到第0与第15位到第12位对调,再以十六进制输出!

终于自己搞定了。论坛里问不出这样的程序啊!

data segment

newline db 0dh, 0ah, '$'

top1 db 'the first word(minuscule):', '$'

top2 db 'the second word(minuscule):', '$'

;the first word:abcd

a db ?

b db ?

c db ?

d db ?

;the second word:efgk

e db ?

f db ?

g db ?

h db ?

;the temp varivable

i db ?

j db ?

k db ?

l db ?

;save the xor result

m db ?

n db ?

o db ?

p db ?

data ends

code segment

assume cs:code, ds:data

start: mov ax , data

mov ds , ax

;**************top1

mov dx, offset top1

mov ah, 9

int 21h

;***********enter a

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun0

jnc Fun1

Fun0:sub al, 57h

jnc NEXT0

Fun1:sub al, 30h

NEXT0:mov a, al

;***********enter b

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun2

jnc Fun3

Fun2:sub al, 57h

jnc NEXT1

Fun3:sub al, 30h

NEXT1:mov b, al

;***********enter c

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun14

jnc Fun15

Fun14:sub al, 57h

jnc NEXT2

Fun15:sub al, 30h

NEXT2:

mov c, al

;***********enter d

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun4

jnc Fun5

Fun4:sub al, 57h

jnc NEXT3

Fun5:sub al, 30h

NEXT3:

mov d, al

;**************newline

mov dx, offset newline

mov ah, 9

int 21h

;**************top2

mov dx, offset top2

mov ah, 9

int 21h

;***********enter e

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun6

jnc Fun7

Fun6:sub al, 57h

jnc NEXT4

Fun7:sub al, 30h

NEXT4:

mov e, al

;***********enter f

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun8

jnc Fun9

Fun8:sub al, 57h

jnc NEXT5

Fun9:sub al, 30h

NEXT5:

mov f, al

;***********enter g

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun10

jnc Fun11

Fun10:sub al, 57h

jnc NEXT6

Fun11:sub al, 30h

NEXT6:

mov g, al

;***********enter h

mov ah, 1

int 21h

mov ah, 'a'

cmp ah, al

jna Fun12

jnc Fun13

Fun12:sub al, 57h

jnc NEXT7

Fun13:sub al, 30h

NEXT7:

mov h, al

;**********the newline

mov dl, offset newline

mov ah, 9

int 21h

;******xor function

mov al, a

mov bl, e

xor al, bl

mov m, al

mov bl, 2

;****enhance the ah

mov ah, 0

div bl

mov i, ah

;****can use the for

mov ah, 0

div bl

mov j, ah

mov ah, 0

div bl

mov k, ah

mov l, al

;pirnt (a xor e) the binary

mov dl, l

add dl, 30h

mov ah, 2

int 21h

mov dl, k

add dl, 30h

mov ah, 2

int 21h

mov dl, j

add dl, 30h

mov ah, 2

int 21h

mov dl, i

add dl, 30h

mov ah, 2

int 21h

;******xor function

mov al, b

mov bl, f

xor al, bl

mov n, al

mov bl, 2

;****enhance the ah

mov ah, 0

div bl

mov i, ah

;****can use the for

mov ah, 0

div bl

mov j, ah

mov ah, 0

div bl

mov k, ah

mov l, al

;pirnt (a xor e) the binary

mov dl, l

add dl, 30h

mov ah, 2

int 21h

mov dl, k

add dl, 30h

mov ah, 2

int 21h

mov dl, j

add dl, 30h

mov ah, 2

int 21h

mov dl, i

add dl, 30h

mov ah, 2

int 21h

;******xor function

mov al, c

mov bl, g

xor al, bl

mov o, al

mov bl, 2

;****enhance the ah

mov ah, 0

div bl

mov i, ah

;****can use the for

mov ah, 0

div bl

mov j, ah

mov ah, 0

div bl

mov k, ah

mov l, al

;pirnt (a xor e) the binary

mov dl, l

add dl, 30h

mov ah, 2

int 21h

mov dl, k

add dl, 30h

mov ah, 2

int 21h

mov dl, j

add dl, 30h

mov ah, 2

int 21h

mov dl, i

add dl, 30h

mov ah, 2

int 21h

;******xor function

mov al, d

mov bl, h

xor al, bl

mov p, al

mov bl, 2

;****enhance the ah

mov ah, 0

div bl

mov i, ah

;****can use the for

mov ah, 0

div bl

mov j, ah

mov ah, 0

div bl

mov k, ah

mov l, al

;pirnt (a xor e) the binary

mov dl, l

add dl, 30h

mov ah, 2

int 21h

mov dl, k

add dl, 30h

mov ah, 2

int 21h

mov dl, j

add dl, 30h

mov ah, 2

int 21h

mov dl, i

add dl, 30h

mov ah, 2

int 21h

;**************newline

mov dl, offset newline

mov ah, 9

int 21h

;print the 0X result 'pnom'

mov al, p

mov ah, 10

cmp ah, al

jna Func0

jnc Func1

Func0:add al, 57h

jnc NEXTC0

Func1:add al, 30h

NEXTC0:mov dl, al

mov ah, 2

int 21h

mov al, n

mov ah, 10

cmp ah, al

jna Func2

jnc Func3

Func2:add al, 57h

jnc NEXTC1

Func3:add al, 30h

NEXTC1:mov dl, al

mov ah, 2

int 21h

mov al, o

mov ah, 10

cmp ah, al

jna Func4

jnc Func5

Func4:add al, 57h

jnc NEXTC2

Func5:add al, 30h

NEXTC2:mov dl, al

mov ah, 2

int 21h

mov al, m

mov ah, 10

cmp ah, al

jna Func6

jnc Func7

Func6:add al, 57h

jnc NEXTC3

Func7:add al, 30h

NEXTC3:mov dl, al

mov ah, 2

int 21h

;*******move to dos

mov ah, 4ch

int 21h

code ends

end start

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航