求人用汇编语言编程

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-18
求汇编高手,汇编语言编程

听说过 BCD 码,没听说过 BCD 数。

什么是 BCD 数 ?

比如,输入:A8,
按照题目要求,显示的,应该是什么?
是显示二进制数吗 ?

ASSUME CS:CODESCODES SEGMENTBEGIN: MOV AH, 1 INT 21H MOV AH, 2 CMP AL, '0' JB O CMP AL, '9' JBE N CMP AL, 'A' JB O CMP AL, 'Z' JBE D CMP AL, 'a' JB O CMP AL, 'z' JBE X JMP ON: MOV DL, 'N' JMP DISPD: MOV DL, 'D' JMP DISPX: MOV DL, 'X' JMP DISPO: MOV DL, '*'DISP: INT 21HEXIT: MOV AH, 4CH INT 21HCODES ENDS END BEGIN

assume cs:code,ds:data
data segment
num db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h
sum db ?
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,offset num
mov cx,10
xor al,al
next: add al,[bx]
inc bx
loop next
mov sum,al
mov ax,4c00h
int 21h
code ends
end start

这个程序不难的
说明一点:10个数据的和应该是04b5h,但是因为sum是字节变量,所以只能存储b5h。
如果希望能够完整保存相加的和,则应该把sum定义成字类型。程序如下:
assume cs:code,ds:data
data segment
num db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h
sum dw ?
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,offset num
mov cx,10
xor ax,ax
xor dh,dh
next: mov dl,[bx]
add ax,dx
inc bx
loop next
mov sum,ax
mov ax,4c00h
int 21h
code ends
end start

汇编语言

显然,汇编是第一个计算机语言。汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。这意味着你将与处理器的底层打交道,比如寄存器和堆栈。如果你要找的是类英语且有相关的自我说明的语言,这不是你想要的。

确切的说,任何你能在其他语言里做到的事情,汇编都能做,只是不那么简单 — 这是当然,就像说你既可以开车到某个地方,也可以走路去,只是难易之分。话虽不错,但是新技术让东西变得更易于使用。

总的来说,汇编语言不会在游戏中单独应用。游戏使用汇编主要是使用它那些能提高性能的零零碎碎的部分。比如说,毁灭战士整体使用C来编写,有几段绘图程序使用汇编。这些程序每秒钟要调用数千次,因此,尽可能的简洁将有助于提高游戏的性能。而从C里调用汇编写的函数是相当简单的,因此同时使用两种语言不成问题。

特别注意:语言的名字叫“汇编”。把汇编语言翻译成真实的机器码的工具叫“汇编程序”。把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发。

优点:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的第一人,因为你能直接使用它们。

缺点:难学、语法晦涩、坚持效率,造成大量额外代码 — 不适于心脏虚弱者。

移植性:接近零。因为这门语言是为一种单独的处理器设计的,根本没移植性可言。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。

使用汇编编写的游戏:我不知道有什么商业游戏是完全用汇编开发的。不过有些游戏使用汇编完成多数对时间要求苛刻的部分。

资料:如果你正在找一门汇编语言的文档,你主要要找芯片的文档。网络上如Intel、AMD、Motorola等有一些关于它们的处理器的资料。对于书籍而言,《Assembly Language: Step-By-Step》是很值得学习的。

assume
cs:code,ds:data
data
segment
num
db
12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h
sum
db
?
data
ends
code
segment
start:
mov
ax,data
mov
ds,ax
mov
bx,offset
num
mov
cx,10
xor
al,al
next:
add
al,[bx]
inc
bx
loop
next
mov
sum,al
mov
ax,4c00h
int
21h
code
ends
end
start
这个程序不难的
说明一点:10个数据的和应该是04b5h,但是因为sum是字节变量,所以只能存储b5h。
如果希望能够完整保存相加的和,则应该把sum定义成字类型。程序如下:
assume
cs:code,ds:data
data
segment
num
db
12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h
sum
dw
?
data
ends
code
segment
start:
mov
ax,data
mov
ds,ax
mov
bx,offset
num
mov
cx,10
xor
ax,ax
xor
dh,dh
next:
mov
dl,[bx]
add
ax,dx
inc
bx
loop
next
mov
sum,ax
mov
ax,4c00h
int
21h
code
ends
end
start

  • 汇编语言、机器语言 C语言
    答:汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者...
  • 编程语言汇编语言
    答:编程者在使用汇编语言时,需要细致地将每一个具体操作转化为指令形式进行编写。汇编程序通常由三部分构成:指令、伪指令和宏指令。每一条指令在实际操作中对应的是微小的动作,比如移动或自增,这就使得汇编源代码往往冗长且复杂,容易出错,对开发者的专业知识要求较高。然而,汇编语言的优势不容忽视。
  • 汇编语言:编写一个程序,显示AL寄存器中的两位十六进制数
    答:add al, 'A'disp:;利用中断显示字符 mov dl, al mov ah, 02h int 21h mov al, dh dec bx test bx, bx jnz again ret code endsend start 本回答由提问者推荐 举报| 答案纠错 | 评论(1) 7 6 yinfengnong 采纳率:59% 来自:芝麻团 擅长: C#/.NET JAVA相关 JavaScript 软件开发 编程语言 其他...
  • 汇编语言编程 编程序,实现y=10*x 谢谢
    答:用MUL指令就是乘法,具体我也记不清了,我学过的是单片机的,好久没用了,你百度百科看下MUL指令的用法,看看能看懂么 残月碎雪 | 发布于2012-06-17 举报| 评论 0 0 为您推荐: 汇编语言指令大全 编程软件 汇编语言是 关于汇编语言程序 汇编语言编程方法 只会汇编语言 汇编语言基础编程 汇编语言 ...
  • 请问一下这个用汇编语言怎么编写啊,本人刚学还不太懂,求帮忙
    答:;=== DATA SEGMENT ;数据段.BLOCK1 DW 2345H ;0010 0011 0100 0101 BLOCK2 DW 5A6BH ;0101 1010 0110 1011 ;共有9个位不同 DATA ENDS ;---I CODE SEGMENT ;代码段.ASSUME CS: CODE, DS: DATA START:MOV AX, DATA MOV DS, AX ;--- MOV AX,...
  • 求一个8086汇编语言程序!急!!! 要求:提示输入x,y,z的值,并显示_百度知 ...
    答:确实是的,dos下的东西,还要32位的整数,有些啰唆。下面给个无符号16位整数的。code segment assume cs:code org 100hstart: push cs pop ds push cs pop es lea dx,msg mov ah,9 int 21h call inputnum lea si,array mov ax,[si+2] mov bx...
  • 试编写一个汇编语言源程序,将键盘输入的ASCII码转换为二进制。_百度知...
    答:hnhhww 采纳率:54% 擅长: 汇编语言 VB 其他编程语言 数学 农业科学 其他回答 CSEG SEGMENT ASSUME CS:CSEG START: SUB BX,BX MOV DL,10H MOV AH,02H MOV CX,0F0H LP: INT 21H PUSH DX MOV DL,0 INT 21H POP DX INC DL INC BL CMP BX,10H JNZ B SUB BX,BX PUSH DX MOV DL,0DH INT 21h ...
  • 汇编语言编程
    答:.要求:写出汇编预言源程序,考试救急,谢谢... 试编程实现从键盘输入0-9中任意一个自然数X,求其对应...一.汉语编程定义: “汉语编程”一种采用汉民族语言文字进行电脑编程的语言系统,支持基于汉语字、词编程...因此笔者认为,编程虽然是外国人发明的,但传到中国来,中国人民以他们的聪明才智,转化为自己的东西,不仅...
  • 汇编语言编程:从FIRST开始的100个单元中存放着一个字符串,结束符为$...
    答:2010-12-09 求达人用“汇编语程序”编程:从FIRST开始的100个单元中... 2 2016-01-01 汇编语言程序编写 内存中以TAB单元开始的区域连续存放着一个... 2008-01-10 汇编作业~~ 请达人帮忙 1 2016-05-04 微机原理编程 若自STRING单元开始存放一个字符串,以'$... 2012-05-31 汇编语言编程。。统计...
  • 汇编语言程序编程
    答:(直接从0398HI单取消,然后进入POUJN脚本,改485这个值就可以了)2)已知数组A和数组B分别包含50和20个互不相等的带符号数(16位)编程将在A中但不在B中出现的数存入数组C中。要求同上。(直接把A用C0998H这个值改为20和50之间)3)在首地址为TABLE的数组中存放着200个16位带符号数,以补码...