主题:急问
咚咚ljd
[专家分:0] 发布于 2007-03-07 21:49:00
有谁能给我讲解xlat指令的使用实例
回复列表 (共5个回复)
沙发
小牛斑斑 [专家分:1210] 发布于 2007-03-08 11:57:00
XLAT 换码指令
格式:XLAT str_table 或 XLAT
功能:把DS: (BX+AL)内存单元中的内容取出送入AL寄存器中。 说明: (1)XLAT指令使用方法: • 先建立一个字节表格; • 表格第一个字节偏移地址存入str_table送入BX寄存器; • 需要转换代码的序号(相对于表格首地址位移量)存入AL;(表中第一个元素的序号为0) • 执行XLAT指令后,表中指定序号的元素存于AL中。(AL)为转换的代码。 (2)默认寄存器: • BX:存放表格第一个字节偏移地址 • AL:使用XLAT指令前,存放相对于表格首字节的位移偏移量;使用XLAT指令后,存放表格中指定的字节的内容;
板凳
小牛斑斑 [专家分:1210] 发布于 2007-03-08 12:00:00
例子
内存的数据段中有一十六进制数字的ASCII码表。首地址为:Hex_table ,欲查出元素‘A’的ASCII码;
MOV BX,OFFSET Hex_table
MOV AL,0AH
XLAT Hex_table ;程序运行后,AL寄存器中的内容为41H。
3 楼
咚咚ljd [专家分:0] 发布于 2007-03-08 12:33:00
有谁能画一下程序在内存中数据的变化图吗
谢谢
4 楼
小牛斑斑 [专家分:1210] 发布于 2007-03-08 18:03:00
再举一例,可能好理解一些
(bx)=0100h为字节符表的 起始地址,0105h字节单元中的内容为2ch
若(al)=05h,则执行后xlat后,(al)=2ch了
5 楼
咚咚ljd [专家分:0] 发布于 2007-03-08 18:58:00
我理解了谢谢
我来回复