请解释一个汇编的程序

请解释一个汇编的程序,第1张

;---------------------------------------------------

;

;后面可能是想将输入的数字用十进制显示出来

;不过没成功

p macro buf ;定义一个宏buf

lea dx,buf

mov ah,9 ;21h号中断的09号中断

int 21h ;显示buf处的字符

endm

;---------------------------------------------------

data segment ;数据段

pp db 0dh,0ah,' welcome you to run this programme!$'

qq db 0dh,0ah,' when you input number,press enter$'

qw db 0dh,0ah,'6eh,52h,94h,52h,$' ;字符ascii码 及属性(颜色背景)

qa db 0dh,0ah,' $'

info1 db 0dh,0ah,0dh,' input number:$' ;提示输入

info2 db 0dh,0ah,' output number:$' ;输出 (测试结果输出乱码

bufa db 20

db

db 20 dup(0)

bufb db 20 dup(0)

buf1 db 20

db

db 20 dup(0)

buf2 db 20 dup(0)

buf3 db 20

db

db 20 dup(0)

buf4 db 20 dup(0)

data ends

;--------------------------------------------------------

stack segment ;堆栈段

db 100 dup(0)

stack ends

;----------------------------------------------------------

code segment

assume ds:data,cs:code

s:

mov ax,data ;初始化

mov ds,ax

mov ah,0

mov al,3 ;读光标位置 返回:CH=光标起始行 DH:DL=行:列

int 10h

mov ah,0bh ;置彩色调色板

mov bh,0 ;彩色调色板ID

mov bl,3 ;和ID配套使用的颜色

int 10h

p pp ;调用宏p 显示数据段pp的字符串

p qq ; 显示数据段pp的字符串

lea si,qw

mov di,5

mov dx,0405h

mov ah,15 ;

int 10h ;返回 AH=字符列数 AL=显示方式

lp:

mov ah,2 ;置光标位置

inc dl

int 10h

mov bl,[si] ;字符属性

mov cx,1 ;字符重复1个

mov ah,9 ;在光标位置显示字符和属性

int 10h

inc si

jnz lp

;------

p qa ;

p qa

p qa

p info1

lea dx,bufa ;设置缓冲区bufa

mov ah,10 ;键盘输入至缓冲区 bufa

int 21h

lea si,bufa+1

mov ch,0

mov cl,[si]

lea di,bufb

n:

mov bx,offset bufa

mov al,0

xlat bufa

mov [di],al

inc di

loop n

mov byte ptr [di],'$' ;$字符串结束符 以便后面显示

p info2

p bufb

p info1

lea dx,buf1

mov ah,10 ;显示buf1

int 21h

lea si,buf1+1

mov ch,0

mov cl,[si]

lea di,buf2

n1:

mov bx,offset buf1

mov al,2

xlat buf1

mov [di],al

inc di

loop n1

mov byte ptr [di],'$'

p info2

p buf2

p info1

lea dx,buf3

mov ah,10

int 21h

lea si,buf3+1

mov ch,0

mov cl,[si]

lea di,buf4

n2: mov bx,offset buf3

mov al,3

xlat buf3

mov [di],al

inc di

loop n2

mov byte ptr [di],'$'

p info2

p buf4

mov ah,4ch ;结束

int 21h

code ends

end s

过零检测可以理解为给主芯片提供一个起点是零电压的标准,配合可控硅导通角的导通时间(它是从零电压开始计算的,导通时间不一样导通角度的大小就不一样)来实现。

酱紫做的额外好处是:当交流器件发生二次击穿时,过零检测电路可以起保护作用。

不知道楼主所说的汇编语言是什么种类。

用 8088 的汇编,简答如下:

;------------------------------------

编制一个字符比较程序,比较3个无符号字节数A,B,C的大小,

并根据比较结果对变量K赋值:

如果3个数不等,则K=0,

如果3个数中有2个相等,则K=1

如果3个数都相等,则K=2。

K DB

A DB 3

B DB 2

C DB 1

……

MOV K, 2

MOV AL, A

CMP AL, B

JE N1

DEC K

MOV AL, A

CMP AL, C

JE N2

DEC K

JMP _END

N1:

MOV AL, B

CMP AL, C

JE _END

DEC K

_END:

HLT

;------------------------------------

N DB

A DB 3

B DB 2

C DB 1

……

MOV AL, B

CMP AL, A

JC N2

MOV AL, A

ADD AL, B

JMP _END

N2:

MOV AL, A

SUB AL, B

ADD AL, C

_END:

MOV N, AL

HLT

;------------------------------------

以上就是关于请解释一个汇编的程序全部的内容,包括:请解释一个汇编的程序、用汇编语言怎么样设置交流电过零检测程序、汇编语言写程序,不要网上有的。写好测试通过再发我等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9614194.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存